|
@@ -473,6 +473,7 @@ int fw_setenv(int argc, char *argv[], struct env_opts *opts)
|
|
int i;
|
|
int i;
|
|
size_t len;
|
|
size_t len;
|
|
char *name, **valv;
|
|
char *name, **valv;
|
|
|
|
+ char *oldval;
|
|
char *value = NULL;
|
|
char *value = NULL;
|
|
int valc;
|
|
int valc;
|
|
int ret;
|
|
int ret;
|
|
@@ -507,11 +508,13 @@ int fw_setenv(int argc, char *argv[], struct env_opts *opts)
|
|
|
|
|
|
if (value)
|
|
if (value)
|
|
value[len - 1] = ' ';
|
|
value[len - 1] = ' ';
|
|
|
|
+ oldval = value;
|
|
value = realloc(value, len + val_len + 1);
|
|
value = realloc(value, len + val_len + 1);
|
|
if (!value) {
|
|
if (!value) {
|
|
fprintf(stderr,
|
|
fprintf(stderr,
|
|
"Cannot malloc %zu bytes: %s\n",
|
|
"Cannot malloc %zu bytes: %s\n",
|
|
len, strerror(errno));
|
|
len, strerror(errno));
|
|
|
|
+ free(oldval);
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|