mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
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.
This commit is contained in:
parent
ac3c59cc80
commit
b251244f85
@ -42,7 +42,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
* Portions taken from FreeBSD.
|
* Portions taken from FreeBSD.
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.125.2.2 2008/02/29 23:31:57 adunstan Exp $
|
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.125.2.3 2009/03/31 18:58:34 mha Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -647,6 +647,13 @@ get_id(void)
|
|||||||
progname);
|
progname);
|
||||||
exit(1);
|
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 */
|
#else /* the windows code */
|
||||||
|
|
||||||
struct passwd_win32
|
struct passwd_win32
|
||||||
@ -658,7 +665,12 @@ get_id(void)
|
|||||||
DWORD pwname_size = sizeof(pass_win32.pw_name) - 1;
|
DWORD pwname_size = sizeof(pass_win32.pw_name) - 1;
|
||||||
|
|
||||||
pw->pw_uid = 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
|
#endif
|
||||||
|
|
||||||
return xstrdup(pw->pw_name);
|
return xstrdup(pw->pw_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user