methods use va_list in a manner that is directly related to the public API.
This makes it much easier to write dynamic nsswitch backends for the
getusershell(3) (et al) functions.
Per my proposal on tech-userlevel in September 2004.
* Make vfprintf_unlocked() an internal function, c.f. __svfscanf_unlocked().
* Add internal names for arc4random(), endnetpath(), fhstatvfs(),
fstatvfs(), mkstemp(), shquote(), statvfs(), taddr2uaddr(), uaddr2taddr(),
uuid_create_nil(), uuid_is_nil(), and wcwidth().
* Include namespace.h where supposed to.
directory. Strategy from FreeBSD. Addess PR#28986.
- Make realpath() to return an error when null string is passed or
the last component is symlink to null string. The kernel lookup
routine returns an error if such path are passed.
- centralize id and time_t parsing, providing better error checking of
numeric values; previously the code would accept 12foo as an expiration
or change time.
- fix issue with dereferencing null flags in compat code.
- ansify, KNF
since 1999 when we switched to a (faster) system call based getcwd(),
and as shown recently has had some buffer size problems anyway (although
they have since been fixed).
that the "int maxgroups" and "int *ngroups" parameters are separated into
two separate parameters which makes it possible to call multiple nsswitch
back-ends and have the results correctly merged.
getgrouplist(3) is now implemented using getgroupmembership(3).
Proposed on tech-userlevel on December 1, 2004.
internal libc source files can use these (including getgroupmembership(3)).
Be more consistent in the API that the __grscan_<source>() methods use.
In __grscan_compat() support an optional custom 'search' function used when a
"+" lookup is required. Normally this will be getgrent() from group_compat,
but getgroupmembership(3) will use a tailored compat search routine for
efficiency.
It tells you the major device number for whatever character or block
device you ask it. This is sort of the inverse of devname(3) but not
quite, since it's backed by the kernel (sysctl's kern.drivers
information) and not a database cobbled together from the contents of
the filesystem.
As Brian reports the bug is in skip(). The logic on end of line is broken.
- fix the bug which can cause buf[-1] to be written.
- don't leave the line buffer allocated on end of file.
- KNF
- use __func__ instead of hard-coding the function name.
- don't use needlessly global variables