aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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);
}