Skip to contentSkip to conversation

udev: mode should be mode_t

PATCH New Robert Love 1 participant 1 message Oct 18, 2003

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 udev: mode should be mode_t

Unix file modes should be stored in a mode_t, not a standard type. At the moment it is actually unsigned, in fact, not a signed integer.

Attached patch does an s/int mode/mode_t mode/ and cleans up the results.

Patch is against udev-003.

Robert Love

 namedev.c  |   12 +++++++-----
 udev-add.c |    4 ++--
 udev.h     |    2 +-
 udevdb.c   |    2 +-
 udevdb.h   |    2 +-
 5 files changed, 12 insertions(+), 10 deletions(-)
namedev.c +7 -5
diff -urN udev-003/namedev.c udev/namedev.c
@@ -446,7 +446,8 @@
 		dev.attr.mode = strtol(temp, NULL, 8);
 
 		dbg_parse("name = %s, owner = %s, group = %s, mode = %#o",
-				dev.attr.name, dev.attr.owner, dev.attr.group, dev.attr.mode);
+				dev.attr.name, dev.attr.owner, dev.attr.group,
+				dev.attr.mode);
 		retval = add_dev(&dev);
 		if (retval) {
 			dbg("add_dev returned with error %d", retval);
@@ -459,7 +460,7 @@
 	return retval;
 }	
 
-static int get_default_mode(struct sysfs_class_device *class_dev)
+static mode_t get_default_mode(struct sysfs_class_device *class_dev)
 {
 	/* just default everyone to rw for the world! */
 	return 0666;
@@ -544,7 +545,7 @@
 	int retval = 0;
 	int found;
 
-	attr->mode = -1;
+	attr->mode = 0;
 	if (class_dev->sysdevice) {
 		dbg_parse("class_dev->sysdevice->directory->path = '%s'", class_dev->sysdevice->directory->path);
 		dbg_parse("class_dev->sysdevice->bus_id = '%s'", class_dev->sysdevice->bus_id);
@@ -751,9 +752,10 @@
 		}	
 	}
 	strcpy(attr->name, class_dev->name);
-	
+
 done:
-	if (attr->mode = -1) {	
+	/* mode was never set above */
+	if (!attr->mode) {
 		attr->mode = get_default_mode(class_dev);
 		attr->owner[0] = 0x00;
 		attr->group[0] = 0x00;
udev-add.c +2 -2
diff -urN udev-003/udev-add.c udev/udev-add.c
@@ -71,7 +71,7 @@
 /*
  * We also want to add some permissions here, and possibly some symlinks
  */
-static int create_node(char *name, char type, int major, int minor, int mode)
+static int create_node(char *name, char type, int major, int minor, mode_t mode)
 {
 	char filename[255];
 	int retval = 0;
@@ -94,7 +94,7 @@
 	}
 
 	dbg("mknod(%s, %#o, %u, %u)", filename, mode, major, minor);
-	retval = mknod(filename,mode,makedev(major,minor));
+	retval = mknod(filename, mode, makedev(major, minor));
 	if (retval)
 		dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
 		    filename, mode, major, minor, strerror(errno));
udevdb.c +1 -1
diff -urN udev-003/udevdb.c udev/udevdb.c
@@ -68,7 +68,7 @@
 	char type;
 	int major;
 	int minor;
-	int mode;
+	mode_t mode;
 };
 
 /**
udevdb.h +1 -1
diff -urN udev-003/udevdb.h udev/udevdb.h
@@ -25,7 +25,7 @@
 	char type;
 	int major;
 	int minor;
-	int mode;
+	mode_t mode;
 };
 
 /* Function Prototypes */
udev.h +1 -1
diff -urN udev-003/udev.h udev/udev.h
@@ -59,7 +59,7 @@
 	char name[NAME_SIZE];
 	char owner[OWNER_SIZE];
 	char group[GROUP_SIZE];
-	int mode;
+	mode_t mode;
 };
 
 extern int udev_add_device(char *device, char *subsystem);

-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo The Event For Linux Datacenter Solutions & Strategies in The Enterprise Linux in the Boardroom; in the Front Office; & in the Server Room
http://www.enterpriselinuxforum.com
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel