diff options
author | Colin Cross <ccross@android.com> | 2013-04-06 01:53:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-04-06 01:53:24 +0000 |
commit | 1615c09ac1065104f56ddc444f5467aff76c0daa (patch) | |
tree | e94092d9a53d67efc69c8cd37d7890af47f85939 /init/init.c | |
parent | f79c05186fb48c89bc6036a751cbe455b99028cb (diff) | |
parent | 11467189bc856c087de1fcc4b7abaf97220e3ada (diff) | |
download | core-1615c09ac1065104f56ddc444f5467aff76c0daa.tar.gz core-1615c09ac1065104f56ddc444f5467aff76c0daa.tar.bz2 core-1615c09ac1065104f56ddc444f5467aff76c0daa.zip |
Merge "init: Fix potential null pointer issue"
Diffstat (limited to 'init/init.c')
-rwxr-xr-x | init/init.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/init/init.c b/init/init.c index b28b0ab23..39df0ffae 100755 --- a/init/init.c +++ b/init/init.c @@ -90,7 +90,7 @@ void notify_service_state(const char *name, const char *state) } static int have_console; -static char *console_name = "/dev/console"; +static char console_name[PROP_VALUE_MAX] = "/dev/console"; static time_t process_needs_restart; static const char *ENV[32]; @@ -430,7 +430,7 @@ static void restart_processes() static void msg_start(const char *name) { - struct service *svc; + struct service *svc = NULL; char *tmp = NULL; char *args = NULL; @@ -438,11 +438,13 @@ static void msg_start(const char *name) svc = service_find_by_name(name); else { tmp = strdup(name); - args = strchr(tmp, ':'); - *args = '\0'; - args++; + if (tmp) { + args = strchr(tmp, ':'); + *args = '\0'; + args++; - svc = service_find_by_name(tmp); + svc = service_find_by_name(tmp); + } } if (svc) { @@ -547,11 +549,9 @@ static int keychord_init_action(int nargs, char **args) static int console_init_action(int nargs, char **args) { int fd; - char tmp[PROP_VALUE_MAX]; if (console[0]) { - snprintf(tmp, sizeof(tmp), "/dev/%s", console); - console_name = strdup(tmp); + snprintf(console_name, sizeof(console_name), "/dev/%s", console); } fd = open(console_name, O_RDWR); |