From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | nicolas(at)marchildon(dot)net |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #8139: initdb: Misleading error message when current user not in /etc/passwd |
Date: | 2013-05-07 18:10:28 |
Message-ID: | 296.1367950228@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
nicolas(at)marchildon(dot)net writes:
> "initdb: could not obtain information about current user: Success"
> The misleading part is the "Success". This comes from errno:
> pw = getpwuid(geteuid());
> if (!pw)
> {
> fprintf(stderr,
> _("%s: could not obtain information about current
> user: %s\n"),
> progname, strerror(errno));
> exit(1);
> }
> The man page says:
> RETURN VALUE
> The getpwnam() and getpwuid() functions return a pointer to a
> passwd
> structure, or NULL if the matching entry is not found or an
> error
> occurs. If an error occurs, errno is set appropriately. If one
> wants
> to check errno after the call, it should be set to zero before
> the
> call.
AFAICS, getpwuid is not honoring its specification here: it failed to
set errno. I don't see that suppressing the strerror result would add
anything much.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2013-05-07 18:19:05 | Re: BUG #8139: initdb: Misleading error message when current user not in /etc/passwd |
Previous Message | nicolas | 2013-05-07 15:42:51 | BUG #8139: initdb: Misleading error message when current user not in /etc/passwd |