mirror of https://gerrit.osmocom.org/libosmocore
vty/command.c: write_config_file(): sanely compose temp path
Fix GCC version 7.3.0 (Debian 7.3.0-12) compiler warning: ../../../../src/libosmocore/src/vty/command.c: In function ‘write_config_file’: ../../../../src/libosmocore/src/vty/command.c:2741:2: error: null destination pointer [-Werror=format-overflow=] sprintf(config_file_tmp, "%s.XXXXXX", config_file); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Check agains NULL after each _talloc_zero() in write_config_file(). While at it, add a comment explaining why we don't use talloc_asprintf() instead. Change-Id: I7bdc52afe724c1d21f419fe49a6e2ebca9420969
This commit is contained in:
parent
a2501a2065
commit
d65f3ea18e
|
@ -2728,16 +2728,26 @@ static int write_config_file(const char *config_file, char **outpath)
|
|||
|
||||
*outpath = NULL;
|
||||
|
||||
/* The string composition code here would be a case for talloc_asprintf(), but the pseudotalloc.c
|
||||
* talloc_asprintf() implementation would truncate a too-long path with "[...]", so doing it
|
||||
* manually instead. */
|
||||
|
||||
/* Check and see if we are operating under vtysh configuration */
|
||||
config_file_sav =
|
||||
_talloc_zero(tall_vty_cmd_ctx,
|
||||
strlen(config_file) + strlen(CONF_BACKUP_EXT) + 1,
|
||||
"config_file_sav");
|
||||
if (!config_file_sav)
|
||||
return -1;
|
||||
strcpy(config_file_sav, config_file);
|
||||
strcat(config_file_sav, CONF_BACKUP_EXT);
|
||||
|
||||
config_file_tmp = _talloc_zero(tall_vty_cmd_ctx, strlen(config_file) + 8,
|
||||
"config_file_tmp");
|
||||
"config_file_tmp");
|
||||
if (!config_file_tmp) {
|
||||
talloc_free(config_file_sav);
|
||||
return -1;
|
||||
}
|
||||
sprintf(config_file_tmp, "%s.XXXXXX", config_file);
|
||||
|
||||
/* Open file to configuration write. */
|
||||
|
|
Loading…
Reference in New Issue