aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2009-03-31 18:58:16 +0000
committerMagnus Hagander <magnus@hagander.net>2009-03-31 18:58:16 +0000
commit84a059abf75019f56eba51f33f90b018df8c1116 (patch)
tree99a5e0ada06c1c2667c81447a9803a78a58f2a11 /src
parentdf13324f0881be67ed53c6108ebdff6ed238bda6 (diff)
downloadpostgresql-84a059abf75019f56eba51f33f90b018df8c1116.tar.gz
postgresql-84a059abf75019f56eba51f33f90b018df8c1116.zip
Don't crash initdb when we fail to get the current username.
Give an error message and exit instead, like we do elsewhere... Per report from Wez Furlong and Robert Treat.
Diffstat (limited to 'src')
-rw-r--r--src/bin/initdb/initdb.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 4885b21e69a..546460c38ae 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -42,7 +42,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
* Portions taken from FreeBSD.
*
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.168 2009/02/25 13:03:06 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.169 2009/03/31 18:58:16 mha Exp $
*
*-------------------------------------------------------------------------
*/
@@ -670,6 +670,13 @@ get_id(void)
progname);
exit(1);
}
+ if (!pw)
+ {
+ fprintf(stderr,
+ _("%s: could not obtain information about current user: %s\n"),
+ progname, strerror(errno));
+ exit(1);
+ }
#else /* the windows code */
struct passwd_win32
@@ -681,7 +688,12 @@ get_id(void)
DWORD pwname_size = sizeof(pass_win32.pw_name) - 1;
pw->pw_uid = 1;
- GetUserName(pw->pw_name, &pwname_size);
+ if (!GetUserName(pw->pw_name, &pwname_size))
+ {
+ fprintf(stderr, _("%s: could not get current user name: %s\n"),
+ progname, strerror(errno));
+ exit(1);
+ }
#endif
return xstrdup(pw->pw_name);