summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrml@tech9.net <rml@tech9.net>2003-10-19 21:56:21 -0700
committerGreg KH <gregkh@suse.de>2005-04-26 21:01:41 -0700
commitc2405f502cae4a634a25674306cffefb85df9ebb (patch)
tree1f51811af2c367b577d38fe3d0c190117ec4490f
parentd7e954a4ef664cd65fbb34cb23ca57dc1bb89ea0 (diff)
downloadsystemd-c2405f502cae4a634a25674306cffefb85df9ebb.tar.gz
[PATCH] 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.
-rw-r--r--namedev.c12
-rw-r--r--udev-add.c4
-rw-r--r--udev.h2
-rw-r--r--udevdb.c2
-rw-r--r--udevdb.h2
5 files changed, 12 insertions, 10 deletions
diff --git a/namedev.c b/namedev.c
index 6f69959346..ac05fd88e4 100644
--- a/namedev.c
+++ b/namedev.c
@@ -446,7 +446,8 @@ static int namedev_init_permissions(void)
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 @@ exit:
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 @@ static int get_attr(struct sysfs_class_device *class_dev, struct device_attr *at
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 @@ label_found:
}
}
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;
diff --git a/udev-add.c b/udev-add.c
index 05f2aa3e9d..d158c41b1d 100644
--- a/udev-add.c
+++ b/udev-add.c
@@ -71,7 +71,7 @@ exit:
/*
* 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 @@ static int create_node(char *name, char type, int major, int minor, int mode)
}
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));
diff --git a/udev.h b/udev.h
index 33cb89af55..af575c2b17 100644
--- a/udev.h
+++ b/udev.h
@@ -59,7 +59,7 @@ struct device_attr {
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);
diff --git a/udevdb.c b/udevdb.c
index fa26de46d5..678ddd9603 100644
--- a/udevdb.c
+++ b/udevdb.c
@@ -73,7 +73,7 @@ struct namedb_record {
char type;
int major;
int minor;
- int mode;
+ mode_t mode;
};
/**
diff --git a/udevdb.h b/udevdb.h
index 8e72eded02..656613b593 100644
--- a/udevdb.h
+++ b/udevdb.h
@@ -25,7 +25,7 @@ struct udevice {
char type;
int major;
int minor;
- int mode;
+ mode_t mode;
};
/* Function Prototypes */