Prefer string concatenation over copying

The `ibuf.product` byte array may contain embedded NUL characters.  In
that case the revision will not be visible as part of dev->sane.model.
merge-requests/1/head
Olaf Meeuwissen 2015-09-19 16:25:32 +09:00 zatwierdzone przez m. allan noah
rodzic 16dc9c87a6
commit f152b40faf
2 zmienionych plików z 6 dodań i 6 usunięć

Wyświetl plik

@ -249,9 +249,9 @@ attach (const char *devnam, Ibm_Device ** devp)
dev->sane.name = strdup (devnam);
dev->sane.vendor = "IBM";
str = malloc (sizeof(ibuf.product) + sizeof(ibuf.revision) + 1);
strncpy (str, (char *)ibuf.product, sizeof(ibuf.product));
strncpy (str + sizeof(ibuf.product), (char *)ibuf.revision, sizeof(ibuf.revision));
str[sizeof(ibuf.product) + sizeof(ibuf.revision)] = '\0';
str[0] = '\0';
strncat (str, (char *)ibuf.product, sizeof(ibuf.product));
strncat (str, (char *)ibuf.revision, sizeof(ibuf.revision));
dev->sane.model = str;
dev->sane.type = "flatbed scanner";

Wyświetl plik

@ -223,9 +223,9 @@ attach (const char *devnam, Ricoh_Device ** devp)
dev->sane.name = strdup (devnam);
dev->sane.vendor = "RICOH";
str = malloc (sizeof(ibuf.product) + sizeof(ibuf.revision) + 1);
strncpy (str, (char *)ibuf.product, sizeof(ibuf.product));
strncpy (str + sizeof(ibuf.product), (char *)ibuf.revision, sizeof(ibuf.revision));
str[sizeof(ibuf.product) + sizeof(ibuf.revision)] = '\0';
str[0] = '\0';
strncat (str, (char *)ibuf.product, sizeof(ibuf.product));
strncat (str, (char *)ibuf.revision, sizeof(ibuf.revision));
dev->sane.model = str;
dev->sane.type = "flatbed scanner";