浏览代码

fix a bug in the trigger handling code

Signed-off-by: John Crispin <blogic@openwrt.org>
John Crispin 10 年之前
父节点
当前提交
72c2157314
共有 2 个文件被更改,包括 4 次插入4 次删除
  1. 2 2
      instance.c
  2. 2 2
      service.c

+ 2 - 2
instance.c

@@ -339,10 +339,10 @@ instance_config_parse(struct service_instance *in)
 		in->respawn_retry = vals[2];
 	}
 	if (tb[INSTANCE_ATTR_TRIGGER]) {
-		in->trigger = malloc(blob_len(tb[INSTANCE_ATTR_TRIGGER]));
+		in->trigger = malloc(blob_pad_len(tb[INSTANCE_ATTR_TRIGGER]));
 		if (!in->trigger)
 			return -1;
-		memcpy(in->trigger, tb[INSTANCE_ATTR_TRIGGER], blob_len(tb[INSTANCE_ATTR_TRIGGER]));
+		memcpy(in->trigger, tb[INSTANCE_ATTR_TRIGGER], blob_pad_len(tb[INSTANCE_ATTR_TRIGGER]));
 		trigger_add(in->trigger, in);
 	}
 

+ 2 - 2
service.c

@@ -108,10 +108,10 @@ service_update(struct service *s, struct blob_attr *config, struct blob_attr **t
 	}
 
 	if (tb[SERVICE_SET_TRIGGER] && blobmsg_data_len(tb[SERVICE_SET_TRIGGER])) {
-		s->trigger = malloc(blob_len(tb[SERVICE_SET_TRIGGER]));
+		s->trigger = malloc(blob_pad_len(tb[SERVICE_SET_TRIGGER]));
 		if (!s->trigger)
 			return -1;
-		memcpy(s->trigger, tb[SERVICE_SET_TRIGGER], blob_len(tb[SERVICE_SET_TRIGGER]));
+		memcpy(s->trigger, tb[SERVICE_SET_TRIGGER], blob_pad_len(tb[SERVICE_SET_TRIGGER]));
 		trigger_add(s->trigger, s);
 	}