Fix core dumps, inability to count, etc associated with canonicalize_path
patches.
This commit is contained in:
parent
d785841f83
commit
79f9ee9d15
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.75 2004/07/12 02:22:49 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.76 2004/08/13 14:47:23 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -405,10 +405,11 @@ find_in_dynamic_libpath(const char *basename)
|
|||||||
strncpy(piece, p, len);
|
strncpy(piece, p, len);
|
||||||
piece[len] = '\0';
|
piece[len] = '\0';
|
||||||
|
|
||||||
canonicalize_path(piece);
|
|
||||||
mangled = substitute_libpath_macro(piece);
|
mangled = substitute_libpath_macro(piece);
|
||||||
pfree(piece);
|
pfree(piece);
|
||||||
|
|
||||||
|
canonicalize_path(mangled);
|
||||||
|
|
||||||
/* only absolute paths */
|
/* only absolute paths */
|
||||||
if (!is_absolute_path(mangled))
|
if (!is_absolute_path(mangled))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.122 2004/07/15 03:56:06 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.123 2004/08/13 14:47:23 tgl Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
@ -375,7 +375,8 @@ exec_command(const char *cmd,
|
|||||||
fname = psql_scan_slash_option(scan_state,
|
fname = psql_scan_slash_option(scan_state,
|
||||||
OT_NORMAL, NULL, true);
|
OT_NORMAL, NULL, true);
|
||||||
expand_tilde(&fname);
|
expand_tilde(&fname);
|
||||||
canonicalize_path(fname);
|
if (fname)
|
||||||
|
canonicalize_path(fname);
|
||||||
status = do_edit(fname, query_buf) ? CMD_NEWEDIT : CMD_ERROR;
|
status = do_edit(fname, query_buf) ? CMD_NEWEDIT : CMD_ERROR;
|
||||||
free(fname);
|
free(fname);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.50 2004/07/11 21:34:03 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.51 2004/08/13 14:47:23 tgl Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
#include "copy.h"
|
#include "copy.h"
|
||||||
@ -513,7 +513,8 @@ do_copy(const char *args)
|
|||||||
appendPQExpBuffer(&query, " FORCE NOT NULL %s", options->force_notnull_list);
|
appendPQExpBuffer(&query, " FORCE NOT NULL %s", options->force_notnull_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
canonicalize_path(options->file);
|
if (options->file)
|
||||||
|
canonicalize_path(options->file);
|
||||||
|
|
||||||
if (options->from)
|
if (options->from)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/port/path.c,v 1.29 2004/08/12 19:03:44 momjian Exp $
|
* $PostgreSQL: pgsql/src/port/path.c,v 1.30 2004/08/13 14:47:23 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -335,7 +335,7 @@ set_pglocale_pgservice(const char *argv0, const char *app)
|
|||||||
{
|
{
|
||||||
char path[MAXPGPATH];
|
char path[MAXPGPATH];
|
||||||
char my_exec_path[MAXPGPATH];
|
char my_exec_path[MAXPGPATH];
|
||||||
char env_path[MAXPGPATH + sizeof("PGLOCALEDIR=")]; /* longer than PGSYSCONFDIR */
|
char env_path[MAXPGPATH + sizeof("PGSYSCONFDIR=")]; /* longer than PGLOCALEDIR */
|
||||||
|
|
||||||
/* don't set LC_ALL in the backend */
|
/* don't set LC_ALL in the backend */
|
||||||
if (strcmp(app, "postgres") != 0)
|
if (strcmp(app, "postgres") != 0)
|
||||||
@ -353,7 +353,7 @@ set_pglocale_pgservice(const char *argv0, const char *app)
|
|||||||
{
|
{
|
||||||
/* set for libpq to use */
|
/* set for libpq to use */
|
||||||
snprintf(env_path, sizeof(env_path), "PGLOCALEDIR=%s", path);
|
snprintf(env_path, sizeof(env_path), "PGLOCALEDIR=%s", path);
|
||||||
canonicalize_path(env_path);
|
canonicalize_path(env_path + 12);
|
||||||
putenv(strdup(env_path));
|
putenv(strdup(env_path));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -364,7 +364,7 @@ set_pglocale_pgservice(const char *argv0, const char *app)
|
|||||||
|
|
||||||
/* set for libpq to use */
|
/* set for libpq to use */
|
||||||
snprintf(env_path, sizeof(env_path), "PGSYSCONFDIR=%s", path);
|
snprintf(env_path, sizeof(env_path), "PGSYSCONFDIR=%s", path);
|
||||||
canonicalize_path(env_path);
|
canonicalize_path(env_path + 13);
|
||||||
putenv(strdup(env_path));
|
putenv(strdup(env_path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user