diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-12 09:08:33 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-12 09:08:33 -0400 |
commit | 3ce1a45a324b83b1c8b02d3799fe15f7a817c57d (patch) | |
tree | c50cee2082358e1f01246ee33a37bc498dfa1ecb | |
parent | a8d6e37a874c7a40429d0aec247658ae1edca6ed (diff) | |
download | stasis-3ce1a45a324b83b1c8b02d3799fe15f7a817c57d.tar.gz |
Fix size of data array in section
* Fix realloc error handler
-rw-r--r-- | src/ini.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -146,7 +146,7 @@ int ini_data_append(struct INIFILE **ini, char *section_name, char *key, char *v return 1; } - struct INIData **tmp = realloc(section->data, (section->data_count + 1) * sizeof(section->data)); + struct INIData **tmp = realloc(section->data, (section->data_count + 1) * sizeof(**section->data)); if (tmp != section->data) { section->data = tmp; } else if (!tmp) { @@ -177,11 +177,11 @@ int ini_data_append(struct INIFILE **ini, char *section_name, char *key, char *v size_t value_len_new = value_len_old + value_len; char *value_tmp = NULL; value_tmp = realloc(data->value, value_len_new + 2); - if (!value_tmp) { + if (value_tmp != data->value) { + data->value = value_tmp; + } else if (!value_tmp) { SYSERROR("Unable to increase data->value size to %zu bytes", value_len_new + 2); return -1; - } else if (value_tmp != data->value) { - data->value = value_tmp; } strcat(data->value, value); } |