summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorChristopher Desjardins <christopher.desjardins@tomtom.com>2017-03-29 13:33:00 +0200
committerTom Cherry <tomcherry@google.com>2017-04-03 22:20:55 +0000
commit7d3e2c4d4ee0747bb2836747411d154b5b9738c5 (patch)
tree2329fa1e16bc525839855eacca1be56a0265c03f /init
parent8678872a0076d31335d91622b9b2b5d7b0fc3551 (diff)
downloadsystem_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.cpp10
-rw-r--r--init/ueventd_parser.cpp4
-rw-r--r--init/ueventd_parser.h2
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