[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.
This commit is contained in:
parent
d7e954a4ef
commit
c2405f502c
12
namedev.c
12
namedev.c
|
@ -446,7 +446,8 @@ static int namedev_init_permissions(void)
|
||||||
dev.attr.mode = strtol(temp, NULL, 8);
|
dev.attr.mode = strtol(temp, NULL, 8);
|
||||||
|
|
||||||
dbg_parse("name = %s, owner = %s, group = %s, mode = %#o",
|
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);
|
retval = add_dev(&dev);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
dbg("add_dev returned with error %d", retval);
|
dbg("add_dev returned with error %d", retval);
|
||||||
|
@ -459,7 +460,7 @@ exit:
|
||||||
return retval;
|
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! */
|
/* just default everyone to rw for the world! */
|
||||||
return 0666;
|
return 0666;
|
||||||
|
@ -544,7 +545,7 @@ static int get_attr(struct sysfs_class_device *class_dev, struct device_attr *at
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
int found;
|
int found;
|
||||||
|
|
||||||
attr->mode = -1;
|
attr->mode = 0;
|
||||||
if (class_dev->sysdevice) {
|
if (class_dev->sysdevice) {
|
||||||
dbg_parse("class_dev->sysdevice->directory->path = '%s'", class_dev->sysdevice->directory->path);
|
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);
|
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);
|
strcpy(attr->name, class_dev->name);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (attr->mode == -1) {
|
/* mode was never set above */
|
||||||
|
if (!attr->mode) {
|
||||||
attr->mode = get_default_mode(class_dev);
|
attr->mode = get_default_mode(class_dev);
|
||||||
attr->owner[0] = 0x00;
|
attr->owner[0] = 0x00;
|
||||||
attr->group[0] = 0x00;
|
attr->group[0] = 0x00;
|
||||||
|
|
|
@ -71,7 +71,7 @@ exit:
|
||||||
/*
|
/*
|
||||||
* We also want to add some permissions here, and possibly some symlinks
|
* 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];
|
char filename[255];
|
||||||
int retval = 0;
|
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);
|
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)
|
if (retval)
|
||||||
dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
|
dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
|
||||||
filename, mode, major, minor, strerror(errno));
|
filename, mode, major, minor, strerror(errno));
|
||||||
|
|
2
udev.h
2
udev.h
|
@ -59,7 +59,7 @@ struct device_attr {
|
||||||
char name[NAME_SIZE];
|
char name[NAME_SIZE];
|
||||||
char owner[OWNER_SIZE];
|
char owner[OWNER_SIZE];
|
||||||
char group[GROUP_SIZE];
|
char group[GROUP_SIZE];
|
||||||
int mode;
|
mode_t mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int udev_add_device(char *device, char *subsystem);
|
extern int udev_add_device(char *device, char *subsystem);
|
||||||
|
|
2
udevdb.c
2
udevdb.c
|
@ -73,7 +73,7 @@ struct namedb_record {
|
||||||
char type;
|
char type;
|
||||||
int major;
|
int major;
|
||||||
int minor;
|
int minor;
|
||||||
int mode;
|
mode_t mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue