[libvirt] [PATCH] Fix getpwuid_r() usage
Daniel P. Berrange
berrange at redhat.com
Fri Jan 30 15:23:00 UTC 2009
On Thu, Jan 29, 2009 at 06:06:10PM -0800, john.levon at sun.com wrote:
> @@ -1485,7 +1485,14 @@ char *virGetUserDirectory(virConnectPtr
> return NULL;
> }
>
> - if (getpwuid_r(uid, &pwbuf, strbuf, strbuflen, &pw) != 0) {
> + /*
> + * From the manpage (terrifying but true):
> + *
> + * ERRORS
> + * 0 or ENOENT or ESRCH or EBADF or EPERM or ...
> + * The given name or uid was not found.
> + */
> + if (getpwuid_r(uid, &pwbuf, strbuf, strbuflen, &pw) != 0 || pw == NULL)
> virReportSystemError(conn, errno,
> _("Failed to find user record for uid '%d'"),
> uid);
Argh, I only read as far as
"The getpwnam_r() and getpwuid_r() functions return zero on success.
In case of error, and error number is returned"
So it returns 0 on success, except when 0 means failure :-(
ACK to your patch
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list