chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
615e05f
)
[PATCH] handle new major:minor format of dev files that showed up in 2.6.0-test2...
author
greg@kroah.com
<greg@kroah.com>
Tue, 5 Aug 2003 04:20:19 +0000
(21:20 -0700)
committer
Greg KH
<gregkh@suse.de>
Wed, 27 Apr 2005 04:01:40 +0000
(21:01 -0700)
udev-add.c
patch
|
blob
|
history
diff --git
a/udev-add.c
b/udev-add.c
index 45ffbf81b5a0a685460552f3a6da830ada9aa363..54af7e4d77bd0494dbbbf671a8495664ae354975 100644
(file)
--- a/
udev-add.c
+++ b/
udev-add.c
@@
-49,30
+49,23
@@
static char sysfs_path[SYSFS_PATH_MAX];
*/
static int get_major_minor(struct sysfs_class_device *class_dev, int *major, int *minor)
{
*/
static int get_major_minor(struct sysfs_class_device *class_dev, int *major, int *minor)
{
- char temp[3];
- int retval = 0;
+ int retval = -ENODEV;
char *dev;
dev = sysfs_get_value_from_attributes(class_dev->directory->attributes, "dev");
if (dev == NULL)
char *dev;
dev = sysfs_get_value_from_attributes(class_dev->directory->attributes, "dev");
if (dev == NULL)
-
return -ENODEV
;
+
goto exit
;
dbg("dev = %s", dev);
dbg("dev = %s", dev);
- temp[0] = dev[0];
- temp[1] = dev[1];
- temp[2] = 0x00;
- *major = (int)strtol(&temp[0], NULL, 16);
-
- temp[0] = dev[2];
- temp[1] = dev[3];
- temp[2] = 0x00;
- *minor = (int)strtol(&temp[0], NULL, 16);
+ if (sscanf(dev, "%u:%u", major, minor) != 2)
+ goto exit;
dbg("found major = %d, minor = %d", *major, *minor);
retval = 0;
dbg("found major = %d, minor = %d", *major, *minor);
retval = 0;
+exit:
return retval;
}
return retval;
}