summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorTom Lane2016-08-30 22:22:43 +0000
committerTom Lane2016-08-30 22:22:43 +0000
commit052cc223d5ce1b727f62afff75797c88d82f880b (patch)
treebc60ab35a639f80fd33d8f3391558084d680dbae /src/common
parent9daec77e165de461fca9d5bc3ece86a91aba5804 (diff)
Fix a bunch of places that called malloc and friends with no NULL check.
Where possible, use palloc or pg_malloc instead; otherwise, insert explicit NULL checks. Generally speaking, these are places where an actual OOM is quite unlikely, either because they're in client programs that don't allocate all that much, or they're very early in process startup so that we'd likely have had a fork() failure instead. Hence, no back-patch, even though this is nominally a bug fix. Michael Paquier, with some adjustments by me Discussion: <CAB7nPqRu07Ot6iht9i9KRfYLpDaF2ZuUv5y_+72uP23ZAGysRg@mail.gmail.com>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/exec.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/common/exec.c b/src/common/exec.c
index d736b02280d..a2de0718cf5 100644
--- a/src/common/exec.c
+++ b/src/common/exec.c
@@ -553,6 +553,7 @@ set_pglocale_pgservice(const char *argv0, const char *app)
char my_exec_path[MAXPGPATH];
char env_path[MAXPGPATH + sizeof("PGSYSCONFDIR=")]; /* longer than
* PGLOCALEDIR */
+ char *dup_path;
/* don't set LC_ALL in the backend */
if (strcmp(app, PG_TEXTDOMAIN("postgres")) != 0)
@@ -583,7 +584,9 @@ set_pglocale_pgservice(const char *argv0, const char *app)
/* set for libpq to use */
snprintf(env_path, sizeof(env_path), "PGLOCALEDIR=%s", path);
canonicalize_path(env_path + 12);
- putenv(strdup(env_path));
+ dup_path = strdup(env_path);
+ if (dup_path)
+ putenv(dup_path);
}
#endif
@@ -594,7 +597,9 @@ set_pglocale_pgservice(const char *argv0, const char *app)
/* set for libpq to use */
snprintf(env_path, sizeof(env_path), "PGSYSCONFDIR=%s", path);
canonicalize_path(env_path + 13);
- putenv(strdup(env_path));
+ dup_path = strdup(env_path);
+ if (dup_path)
+ putenv(dup_path);
}
}