Bug #393
closedconfstr() should return 0, not -1, on errors
0%
Description
According to
http://www.opengroup.org/onlinepubs/009695399/functions/confstr.html
confstr() should return 0, not (size_t)-1, on errors. The current
DragonFly BSD implementation returns -1 if sysctl() fails.
Files
Updated by joerg about 18 years ago
It should be noted that this is consistent with other BSDs. I don't have
a reference to POSIX.2 to verify the original specification.
Joerg
Updated by guy about 18 years ago
Not with top-of-tree FreeBSD, it isn't - the top-of-tree FreeBSD code
returns 0:
The documentation, until recently, said it returned -1, but I filed a
bug about that:
http://www.freebsd.org/cgi/query-pr.cgi?pr=docs/106234
and it was recently fixed:
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/confstr.3.diff?r1=1.13&r2=1.14
As for NetBSD, I filed a bug on the code:
http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=35170
which is now closed - they changed the code and the man page.
Similar changes were made to OpenBSD in response to bug mail I sent:
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/confstr.c.diff?r1=1.7&r2=1.8
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/confstr.3.diff?r1=1.14&r2=1.15
so DragonFly is now inconsistent with the top of the tree of FreeBSD,
NetBSD, and OpenBSD, and its code is inconsistent with the 5.x and 6.x
releases of FreeBSD.
I don't have
a reference to POSIX.2 to verify the original specification.
Perhaps POSIX.2 said it returned -1 (I think my POSIX.2 is at work), but
what counts now is the Single UNIX Specification, and, as per the URL I
think I sent in my mail:
http://www.opengroup.org/onlinepubs/009695399/functions/confstr.html
it says it returns 0 on errors.
Updated by dillon about 18 years ago
:Not with top-of-tree FreeBSD, it isn't - the top-of-tree FreeBSD code
:returns 0:
:
:http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/confstr.c?rev=1.9&content-type=text/x-cvsweb-markup
:...
Seems pretty conclusive to me. Would someone like to make this
adjustment in our tree?
-Matt
Updated by TGEN about 18 years ago
See attached patch.
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
Updated by TGEN about 18 years ago
And the next attached patch fixes the only consumer of confstr(3) in our
tree (something the other BSDs don't appear to have done).
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net