mirror of
https://github.com/postgres/postgres.git
synced 2025-10-13 18:28:01 +03:00
Don't leak memory during failure exit from SelectConfigFiles().
Make sure the memory allocated by make_absolute_path() is freed when SelectConfigFiles() fails. Since all the callers will exit immediately in that case, there's no practical gain here, but silencing Valgrind leak complaints seems useful. In any case, it was inconsistent that only one of the failure exits did this. Author: Aleksander Alekseev <aleksander@tigerdata.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CAJ7c6TMByXE8dc7zDvDWTQjk6o-XXAdRg_RAg5CBaUOgFPV3LQ%40mail.gmail.com
This commit is contained in:
@@ -1803,7 +1803,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
configdir);
|
||||
if (errno == ENOENT)
|
||||
write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n");
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1830,7 +1830,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
"You must specify the --config-file or -D invocation "
|
||||
"option or set the PGDATA environment variable.\n",
|
||||
progname);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1851,8 +1851,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
{
|
||||
write_stderr("%s: could not access the server configuration file \"%s\": %m\n",
|
||||
progname, ConfigFileName);
|
||||
free(configdir);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1882,7 +1881,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
"or by the -D invocation option, or by the "
|
||||
"PGDATA environment variable.\n",
|
||||
progname, ConfigFileName);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1934,7 +1933,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
"or by the -D invocation option, or by the "
|
||||
"PGDATA environment variable.\n",
|
||||
progname, ConfigFileName);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
SetConfigOption("hba_file", fname, PGC_POSTMASTER, PGC_S_OVERRIDE);
|
||||
|
||||
@@ -1965,7 +1964,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
"or by the -D invocation option, or by the "
|
||||
"PGDATA environment variable.\n",
|
||||
progname, ConfigFileName);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
SetConfigOption("ident_file", fname, PGC_POSTMASTER, PGC_S_OVERRIDE);
|
||||
|
||||
@@ -1977,6 +1976,11 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
||||
free(configdir);
|
||||
|
||||
return true;
|
||||
|
||||
fail:
|
||||
free(configdir);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user