}
conf->pattern = strdup(result->name);
- if (!conf->pattern)
+ if (!conf->pattern) {
_E("fail to copy %s pattern data", result->name);
+ free(conf);
+ return -ENOMEM;
+ }
value = result->value;
-
- if (!value)
- len = 0;
- else
- len = strlen(value);
+ len = strlen(value);
if (len == 0) {
data = (struct duration_data *)malloc(sizeof(struct duration_data));
return 0;
}
+ /* value : 100D or 100D0W or 250D250W250D750W*/
do {
data = (struct duration_data *)malloc(sizeof(struct duration_data));
if (!data) {
if (check) {
*check = '\0';
data->duration = strtol(value, NULL, 10);
- if (!value)
- len = len - 1;
- else
- len = len - strlen(value) - 1;
+ len = len - strlen(value) - 1;
value = check + 1;
}
+
check = strchr(value, 'W');
if (check) {
*check = '\0';
data->wait = strtol(value, NULL, 10);
- if (!value)
- len = len - 1;
- else
- len = len - strlen(value) - 1;
+ len = len - strlen(value) - 1;
value = check + 1;
}
+
DD_LIST_APPEND(conf->data, data);
if (data->duration == 0 && data->wait == 0)
break;
- } while (value && len > 0);
+ } while (len > 0);
DD_LIST_APPEND(vib_conf_list, conf);