diff options
-rw-r--r-- | hotplug-rule.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/hotplug-rule.c b/hotplug-rule.c index a2d8892..7508b1d 100644 --- a/hotplug-rule.c +++ b/hotplug-rule.c @@ -379,6 +379,11 @@ static int cmd_process_strings(struct blob_attr *attr, struct blob_attr *msg) if (args++ < 0) continue; + if (blobmsg_type(cur) != BLOBMSG_TYPE_STRING) { + rule_error(attr, "Invalid argument in command"); + return -1; + } + cmd_add_string(blobmsg_data(cur), msg); } @@ -398,7 +403,10 @@ static int __rule_process_cmd(struct blob_attr *cur, struct blob_attr *msg) return ret; name = blobmsg_data(blobmsg_data(cur)); - cmd_process_strings(cur, msg); + ret = cmd_process_strings(cur, msg); + if (ret) + return ret; + rule_handle_command(name, blob_data(b.head)); return 0; |