[oe-commits] Peter Kjellerstedt : makedevs: Create blocks of devices with the correct uid/gid
git at git.openembedded.org
git at git.openembedded.org
Fri May 31 09:06:29 UTC 2013
Module: openembedded-core.git
Branch: master-next
Commit: e7796880164d6a37c2699a94e1c5391337c5eaa5
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e7796880164d6a37c2699a94e1c5391337c5eaa5
Author: Peter Kjellerstedt <pkj at axis.com>
Date: Wed May 29 11:47:17 2013 +0000
makedevs: Create blocks of devices with the correct uid/gid
When creating a block of devices (i.e., when count > 0), the wrong
path was used with the call to chown(), effectively trying to change
the owner of some (probably) non-existent file. Thus the created
device nodes were always owned by root.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
.../makedevs/makedevs-1.0.0/makedevs.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
index c7ad722..247d6c1 100644
--- a/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
+++ b/meta/recipes-devtools/makedevs/makedevs-1.0.0/makedevs.c
@@ -130,7 +130,7 @@ static void add_new_device(char *name, char *path, unsigned long uid,
timestamp = sb.st_mtime;
}
- mknod(name, mode, rdev);
+ mknod(path, mode, rdev);
chown(path, uid, gid);
// printf("Device: %s %s UID: %ld GID: %ld MODE: %ld MAJOR: %d MINOR: %d\n",
// path, name, uid, gid, mode, (short)(rdev >> 8), (short)(rdev & 0xff));
@@ -198,7 +198,7 @@ static int interpret_table_entry(char *line)
error_msg_and_die("Device table entries require absolute paths");
}
name = xstrdup(path + 1);
- sprintf(path, "%s/%s\0", rootdir, name);
+ sprintf(path, "%s/%s", rootdir, name);
switch (type) {
case 'd':
@@ -223,6 +223,7 @@ static int interpret_table_entry(char *line)
for (i = start; i < count; i++) {
sprintf(buf, "%s%d", name, i);
+ sprintf(path, "%s/%s%d", rootdir, name, i);
/* FIXME: MKDEV uses illicit insider knowledge of kernel
* major/minor representation... */
rdev = MKDEV(major, minor + (i * increment - start));
More information about the Openembedded-commits
mailing list