From d679e1b572c8fc2a115b7d126593f92abd746aab Mon Sep 17 00:00:00 2001 From: Benoit Goby Date: Tue, 24 Sep 2013 14:42:26 -0700 Subject: [PATCH] init: Fix queue_all_property_triggers with nonexistent properties Don't queue actions for "on property=*" if the property does not exist. This fixes these errors on boot: init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}' init: powerctl: cannot expand '${sys.powerctl} Change-Id: I3bd354d73a860f856be5df2c654f940445f9efd9 --- init/init_parser.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/init/init_parser.c b/init/init_parser.c index 616671a30..2c2c91c0c 100644 --- a/init/init_parser.c +++ b/init/init_parser.c @@ -549,12 +549,14 @@ void queue_all_property_triggers() if (length > PROP_NAME_MAX) { ERROR("property name too long in trigger %s", act->name); } else { + int ret; memcpy(prop_name, name, length); prop_name[length] = 0; /* does the property exist, and match the trigger value? */ - property_get(prop_name, value); - if (!strcmp(equals + 1, value) ||!strcmp(equals + 1, "*")) { + ret = property_get(prop_name, value); + if (ret > 0 && (!strcmp(equals + 1, value) || + !strcmp(equals + 1, "*"))) { action_add_queue_tail(act); } }