From 3ce1a45a324b83b1c8b02d3799fe15f7a817c57d Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 12 Apr 2024 09:08:33 -0400 Subject: Fix size of data array in section * Fix realloc error handler --- src/ini.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') 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); } -- cgit