chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge rsync://rsync.kernel.org/pub/scm/linux/hotplug/udev
[elogind.git]
/
extras
/
usb_id
/
usb_id.c
diff --git
a/extras/usb_id/usb_id.c
b/extras/usb_id/usb_id.c
index 37db6d14dbaaf75e0de1bbf276ec8429b8218821..f5ee7959246a8d3a93653497ad0441988915aba7 100644
(file)
--- a/
extras/usb_id/usb_id.c
+++ b/
extras/usb_id/usb_id.c
@@
-119,25
+119,26
@@
static void set_str(char *to, const char *from, size_t count)
*
* Set the type based on the USB interface class
*/
*
* Set the type based on the USB interface class
*/
-static void set_usb_iftype(char *to, const char *from,
int count
)
+static void set_usb_iftype(char *to, const char *from,
size_t len
)
{
int type_num;
char *eptr;
{
int type_num;
char *eptr;
+ char *type = "generic";
type_num = strtoul(from, &eptr, 0);
if (eptr != from) {
switch (type_num) {
case 1:
type_num = strtoul(from, &eptr, 0);
if (eptr != from) {
switch (type_num) {
case 1:
-
sprintf(to, "audio")
;
+
type = "audio"
;
break;
case 3:
break;
case 3:
-
sprintf(to, "hid")
;
+
type = "hid"
;
break;
case 7:
break;
case 7:
-
sprintf(to, "printer")
;
+
type = "printer"
;
break;
case 8:
break;
case 8:
-
sprintf(to, "disk")
;
+
type = "disk"
;
break;
case 2: /* CDC-Control */
case 5: /* Physical */
break;
case 2: /* CDC-Control */
case 5: /* Physical */
@@
-152,12
+153,11
@@
static void set_usb_iftype(char *to, const char *from, int count)
case 0xf2: /* Application-specific */
case 0xff: /* Vendor-specific */
default:
case 0xf2: /* Application-specific */
case 0xff: /* Vendor-specific */
default:
- sprintf(to, "generic");
break;
}
break;
}
- } else {
- sprintf(to, "generic");
}
}
+ strncpy(to, type, len);
+ to[len-1] = '\0';
}
/*
}
/*
@@
-166,32
+166,35
@@
static void set_usb_iftype(char *to, const char *from, int count)
* Set the type base on the interfaceSubClass.
* Valid for Mass-Storage devices (type 8) only.
*/
* Set the type base on the interfaceSubClass.
* Valid for Mass-Storage devices (type 8) only.
*/
-static int set_usb_ifsubtype(char *to, const char *from,
int count
)
+static int set_usb_ifsubtype(char *to, const char *from,
size_t len
)
{
int type_num = 0;
char *eptr;
{
int type_num = 0;
char *eptr;
+ char *type = "generic";
type_num = strtoul(from, &eptr, 0);
if (eptr != from) {
switch (type_num) {
case 2:
type_num = strtoul(from, &eptr, 0);
if (eptr != from) {
switch (type_num) {
case 2:
-
sprintf(to, "cd")
;
+
type = "cd"
;
break;
case 3:
break;
case 3:
-
sprintf(to, "tape")
;
+
type = "tape"
;
break;
case 4: /* UFI */
case 5: /* SFF-8070i */
break;
case 4: /* UFI */
case 5: /* SFF-8070i */
-
sprintf(to, "floppy")
;
+
type = "floppy"
;
break;
case 1: /* RBC devices */
case 6: /* Transparent SPC-2 devices */
break;
case 1: /* RBC devices */
case 6: /* Transparent SPC-2 devices */
- sprintf(to, "disk");
+ type = "disk";
+ break;
+ default:
break;
}
break;
}
- } else {
- sprintf(to, "generic");
}
}
+ strncpy(to, type, len);
+ to[len-1] = '\0';
return type_num;
}
return type_num;
}