aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-04-12 09:08:33 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-04-12 09:08:33 -0400
commit3ce1a45a324b83b1c8b02d3799fe15f7a817c57d (patch)
treec50cee2082358e1f01246ee33a37bc498dfa1ecb
parenta8d6e37a874c7a40429d0aec247658ae1edca6ed (diff)
downloadstasis-3ce1a45a324b83b1c8b02d3799fe15f7a817c57d.tar.gz
Fix size of data array in section
* Fix realloc error handler
-rw-r--r--src/ini.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/ini.c b/src/ini.c
index 1e1a3d0..f43beaa 100644
--- a/src/ini.c
+++ b/src/ini.c
@@ -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);
}