diff options
author | Christopher Desjardins <christopher.desjardins@tomtom.com> | 2017-03-29 13:33:00 +0200 |
---|---|---|
committer | Tom Cherry <tomcherry@google.com> | 2017-04-03 22:20:55 +0000 |
commit | 7d3e2c4d4ee0747bb2836747411d154b5b9738c5 (patch) | |
tree | 2329fa1e16bc525839855eacca1be56a0265c03f /init | |
parent | 8678872a0076d31335d91622b9b2b5d7b0fc3551 (diff) | |
download | system_core-7d3e2c4d4ee0747bb2836747411d154b5b9738c5.tar.gz system_core-7d3e2c4d4ee0747bb2836747411d154b5b9738c5.tar.bz2 system_core-7d3e2c4d4ee0747bb2836747411d154b5b9738c5.zip |
Make ueventd error messages indicate where the error is in ueventd script
Test: Boot bullhead
Test: Observe errors with file and line number with faulty ueventd.rc
Change-Id: Ieae6151e253f1e6437dfdebd14da4e1e04a45fae
Diffstat (limited to 'init')
-rw-r--r-- | init/ueventd.cpp | 10 | ||||
-rw-r--r-- | init/ueventd_parser.cpp | 4 | ||||
-rw-r--r-- | init/ueventd_parser.h | 2 |
3 files changed, 8 insertions, 8 deletions
diff --git a/init/ueventd.cpp b/init/ueventd.cpp index 915afbdfb..8b28e87f9 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 |