Browse Source

Duplicate the name string always in api_add_data_full to not need persistent storage for names passed to it.

Con Kolivas 12 years ago
parent
commit
965129b5b7
1 changed files with 2 additions and 1 deletions
  1. 2 1
      api.c

+ 2 - 1
api.c

@@ -827,7 +827,7 @@ static struct api_data *api_add_data_full(struct api_data *root, char *name, enu
 
 
 	api_data = (struct api_data *)malloc(sizeof(struct api_data));
 	api_data = (struct api_data *)malloc(sizeof(struct api_data));
 
 
-	api_data->name = name;
+	api_data->name = strdup(name);
 	api_data->type = type;
 	api_data->type = type;
 
 
 	if (root == NULL) {
 	if (root == NULL) {
@@ -1116,6 +1116,7 @@ static struct api_data *print_data(struct api_data *root, char *buf, bool isjson
 
 
 		buf = strchr(buf, '\0');
 		buf = strchr(buf, '\0');
 
 
+		free(root->name);
 		if (root->data_was_malloc)
 		if (root->data_was_malloc)
 			free(root->data);
 			free(root->data);