Bug #393
confstr() should return 0, not -1, on errors
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | - | |||
| Target version: | - |
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.
Related todos
History
Updated by joerg over 6 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 over 6 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 over 6 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 over 6 years ago
See attached patch.
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
Updated by TGEN over 6 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
Updated by TGEN over 6 years ago
Patches have been committed.