diff --git a/init/ueventd.cpp b/init/ueventd.cpp index f27be6479..ba53e4737 100644 --- a/init/ueventd.cpp +++ b/init/ueventd.cpp @@ -94,7 +94,7 @@ int ueventd_main(int argc, char **argv) return 0; } -void set_device_permission(int nargs, char **args) +void set_device_permission(const char* fn, int line, int nargs, char **args) { char *name; char *attr = 0; @@ -121,7 +121,7 @@ void set_device_permission(int nargs, char **args) } if (nargs != 4) { - LOG(ERROR) << "invalid line ueventd.rc line for '" << args[0] << "'"; + LOG(ERROR) << "invalid line (" << fn << ":" << line << ") line for '" << args[0] << "'"; return; } @@ -136,20 +136,20 @@ void set_device_permission(int nargs, char **args) perm = strtol(args[1], &endptr, 8); if (!endptr || *endptr != '\0') { - LOG(ERROR) << "invalid mode '" << args[1] << "'"; + LOG(ERROR) << "invalid mode (" << fn << ":" << line << ") '" << args[1] << "'"; return; } struct passwd* pwd = getpwnam(args[2]); if (!pwd) { - LOG(ERROR) << "invalid uid '" << args[2] << "'"; + LOG(ERROR) << "invalid uid (" << fn << ":" << line << ") '" << args[2] << "'"; return; } uid = pwd->pw_uid; struct group* grp = getgrnam(args[3]); if (!grp) { - LOG(ERROR) << "invalid gid '" << args[3] << "'"; + LOG(ERROR) << "invalid gid (" << fn << ":" << line << ") '" << args[3] << "'"; return; } gid = grp->gr_gid; diff --git a/init/ueventd_parser.cpp b/init/ueventd_parser.cpp index baff58c36..554c1e35d 100644 --- a/init/ueventd_parser.cpp +++ b/init/ueventd_parser.cpp @@ -236,6 +236,6 @@ int ueventd_parse_config_file(const char *fn) return 0; } -static void parse_line_device(parse_state*, int nargs, char** args) { - set_device_permission(nargs, args); +static void parse_line_device(parse_state* state, int nargs, char** args) { + set_device_permission(state->filename, state->line, nargs, args); } diff --git a/init/ueventd_parser.h b/init/ueventd_parser.h index 907cc49de..4d6989730 100644 --- a/init/ueventd_parser.h +++ b/init/ueventd_parser.h @@ -22,7 +22,7 @@ #define UEVENTD_PARSER_MAXARGS 5 int ueventd_parse_config_file(const char *fn); -void set_device_permission(int nargs, char **args); +void set_device_permission(const char* fn, int line, int nargs, char **args); struct ueventd_subsystem *ueventd_subsystem_find_by_name(const char *name); #endif