X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=plug%2Fhotplug.c;h=54a90cc92f2de71c8e21d4d77d5bff2b8acc4c10;hp=85959155634f1a6a9ada11c7045601885a0abad8;hb=e999ab7;hpb=a07669704798cb0262485f69c5547033c64ade58 diff --git a/plug/hotplug.c b/plug/hotplug.c index 8595915..54a90cc 100644 --- a/plug/hotplug.c +++ b/plug/hotplug.c @@ -130,6 +130,7 @@ static void handle_makedev(struct blob_attr *msg, struct blob_attr *data) char *minor = hotplug_msg_find_var(msg, "MINOR"); char *major = hotplug_msg_find_var(msg, "MAJOR"); char *subsystem = hotplug_msg_find_var(msg, "SUBSYSTEM"); + int ret; blobmsg_parse_array(mkdev_policy, 3, tb, blobmsg_data(data), blobmsg_data_len(data)); if (tb[0] && tb[1] && minor && major && subsystem) { @@ -149,8 +150,9 @@ static void handle_makedev(struct blob_attr *msg, struct blob_attr *data) struct group *g = getgrnam(blobmsg_get_string(tb[2])); if (g) - chown(blobmsg_get_string(tb[0]), 0, g->gr_gid); - else + ret = chown(blobmsg_get_string(tb[0]), 0, g->gr_gid); + + if (!g || ret < 0) ERROR("cannot set group %s for %s\n", blobmsg_get_string(tb[2]), blobmsg_get_string(tb[0]));