diff options
author | gjb <gjb@FreeBSD.org> | 2015-05-01 18:07:18 +0000 |
---|---|---|
committer | gjb <gjb@FreeBSD.org> | 2015-05-01 18:07:18 +0000 |
commit | 55e5b36d38ff95ded004ed97fe9ed303abb36184 (patch) | |
tree | ca54c9ba1af0ca2eb29e395b069252993a4e1ada /lib | |
parent | dfb432f9b57e5f768243247ed35fbe38bb9c40f1 (diff) | |
parent | fecee76e5a26a3b0a0cac30b34c660389e57579e (diff) | |
download | FreeBSD-src-55e5b36d38ff95ded004ed97fe9ed303abb36184.zip FreeBSD-src-55e5b36d38ff95ded004ed97fe9ed303abb36184.tar.gz |
MFH: r281855-r282312
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'lib')
65 files changed, 238 insertions, 315 deletions
diff --git a/lib/libarchive/config_freebsd.h b/lib/libarchive/config_freebsd.h index 0df3f91..fbf429f 100644 --- a/lib/libarchive/config_freebsd.h +++ b/lib/libarchive/config_freebsd.h @@ -25,6 +25,8 @@ * $FreeBSD$ */ +#include <osreldate.h> + /* FreeBSD 5.0 and later have ACL and extattr support. */ #if __FreeBSD__ > 4 #define HAVE_ACL_CREATE_ENTRY 1 @@ -220,6 +222,11 @@ #define HAVE_ZLIB_H 1 #define TIME_WITH_SYS_TIME 1 +#if __FreeBSD_version >= 1100056 +#define HAVE_FUTIMENS 1 +#define HAVE_UTIMENSAT 1 +#endif + /* FreeBSD 4 and earlier lack intmax_t/uintmax_t */ #if __FreeBSD__ < 5 #define intmax_t int64_t diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 8e0db62..93ab138 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -157,7 +157,9 @@ libkern.${LIBC_ARCH}:: ${KMSRCS} ${CP} ${.ALLSRC} ${DESTDIR}/sys/libkern/${LIBC_ARCH} .endif -.include <bsd.arch.inc.mk> +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif .include <bsd.lib.mk> diff --git a/lib/libc/Makefile.amd64 b/lib/libc/Makefile.amd64 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/libc/Makefile.amd64 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/libc/Makefile.i386 b/lib/libc/Makefile.i386 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/libc/Makefile.i386 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/libc/gen/_once_stub.c b/lib/libc/gen/_once_stub.c index d2acc29..c45565a 100644 --- a/lib/libc/gen/_once_stub.c +++ b/lib/libc/gen/_once_stub.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC + * Copyright (c) 2009 Hudson River Trading LLC * Written by: John H. Baldwin <jhb@FreeBSD.org> * All rights reserved. * diff --git a/lib/libc/gen/getutxent.3 b/lib/libc/gen/getutxent.3 index 120f4a0..85c37b1 100644 --- a/lib/libc/gen/getutxent.3 +++ b/lib/libc/gen/getutxent.3 @@ -475,4 +475,4 @@ They replaced the .In utmp.h interface. .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/nice.3 b/lib/libc/gen/nice.3 index 8ce13af..b04c8f4 100644 --- a/lib/libc/gen/nice.3 +++ b/lib/libc/gen/nice.3 @@ -87,7 +87,7 @@ The function conforms to .St -p1003.1-2008 except for the return value. -This implementation returns 0 upon successful completion but +This implementation returns 0 upon successful completion but the standard requires returning the new nice value, which could be \-1. .Sh HISTORY diff --git a/lib/libc/gen/posix_spawn.3 b/lib/libc/gen/posix_spawn.3 index 52e8171..2c9131b 100644 --- a/lib/libc/gen/posix_spawn.3 +++ b/lib/libc/gen/posix_spawn.3 @@ -457,4 +457,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawn_file_actions_addopen.3 b/lib/libc/gen/posix_spawn_file_actions_addopen.3 index b28f396..0b57999b 100644 --- a/lib/libc/gen/posix_spawn_file_actions_addopen.3 +++ b/lib/libc/gen/posix_spawn_file_actions_addopen.3 @@ -200,4 +200,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawn_file_actions_init.3 b/lib/libc/gen/posix_spawn_file_actions_init.3 index eda2a1d..380eed7 100644 --- a/lib/libc/gen/posix_spawn_file_actions_init.3 +++ b/lib/libc/gen/posix_spawn_file_actions_init.3 @@ -101,4 +101,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getflags.3 b/lib/libc/gen/posix_spawnattr_getflags.3 index b5995ce..2571f4a 100644 --- a/lib/libc/gen/posix_spawnattr_getflags.3 +++ b/lib/libc/gen/posix_spawnattr_getflags.3 @@ -108,4 +108,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getpgroup.3 b/lib/libc/gen/posix_spawnattr_getpgroup.3 index 91b3e5c..cfc1b54 100644 --- a/lib/libc/gen/posix_spawnattr_getpgroup.3 +++ b/lib/libc/gen/posix_spawnattr_getpgroup.3 @@ -93,4 +93,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getschedparam.3 b/lib/libc/gen/posix_spawnattr_getschedparam.3 index a137200..5eef96e 100644 --- a/lib/libc/gen/posix_spawnattr_getschedparam.3 +++ b/lib/libc/gen/posix_spawnattr_getschedparam.3 @@ -97,4 +97,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getschedpolicy.3 b/lib/libc/gen/posix_spawnattr_getschedpolicy.3 index 3e79d4b..5276de5 100644 --- a/lib/libc/gen/posix_spawnattr_getschedpolicy.3 +++ b/lib/libc/gen/posix_spawnattr_getschedpolicy.3 @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getsigdefault.3 b/lib/libc/gen/posix_spawnattr_getsigdefault.3 index 8878332..a81c714 100644 --- a/lib/libc/gen/posix_spawnattr_getsigdefault.3 +++ b/lib/libc/gen/posix_spawnattr_getsigdefault.3 @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_getsigmask.3 b/lib/libc/gen/posix_spawnattr_getsigmask.3 index 4f9c014..be15d9d 100644 --- a/lib/libc/gen/posix_spawnattr_getsigmask.3 +++ b/lib/libc/gen/posix_spawnattr_getsigmask.3 @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/gen/posix_spawnattr_init.3 b/lib/libc/gen/posix_spawnattr_init.3 index 388fe5a..b4ec52c 100644 --- a/lib/libc/gen/posix_spawnattr_init.3 +++ b/lib/libc/gen/posix_spawnattr_init.3 @@ -120,4 +120,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/include/compat.h b/lib/libc/include/compat.h index 6ab17d7..b20fac5 100644 --- a/lib/libc/include/compat.h +++ b/lib/libc/include/compat.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2009 Advanced Computing Technologies LLC + * Copyright (c) 2009 Hudson River Trading LLC * Written by: John H. Baldwin <jhb@FreeBSD.org> * All rights reserved. * diff --git a/lib/libc/locale/duplocale.3 b/lib/libc/locale/duplocale.3 index f2e8215..bc0c4bc 100644 --- a/lib/libc/locale/duplocale.3 +++ b/lib/libc/locale/duplocale.3 @@ -36,7 +36,7 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In xlocale.h +.In locale.h .Ft locale_t .Fn duplocale "locale_t locale" .Sh DESCRIPTION diff --git a/lib/libc/locale/freelocale.3 b/lib/libc/locale/freelocale.3 index 86f4809..0df80e7 100644 --- a/lib/libc/locale/freelocale.3 +++ b/lib/libc/locale/freelocale.3 @@ -38,7 +38,7 @@ or .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In xlocale.h +.In locale.h .Ft int .Fn freelocale "locale_t locale" .Sh DESCRIPTION diff --git a/lib/libc/locale/newlocale.3 b/lib/libc/locale/newlocale.3 index a639c37..c7414be 100644 --- a/lib/libc/locale/newlocale.3 +++ b/lib/libc/locale/newlocale.3 @@ -35,7 +35,7 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In xlocale +.In locale.h .Ft locale_t .Fn newlocale "int mask" "const char * locale" "locale_t base" .Sh DESCRIPTION diff --git a/lib/libc/locale/none.c b/lib/libc/locale/none.c index 75adffa..cacfd73 100644 --- a/lib/libc/locale/none.c +++ b/lib/libc/locale/none.c @@ -209,7 +209,7 @@ struct xlocale_ctype __xlocale_global_ctype = { 256 /* __mb_sb_limit */ }; -const struct xlocale_ctype __xlocale_C_ctype = { +struct xlocale_ctype __xlocale_C_ctype = { {{0}, "C"}, (_RuneLocale*)&_DefaultRuneLocale, _none_mbrtowc, diff --git a/lib/libc/locale/querylocale.3 b/lib/libc/locale/querylocale.3 index f90d626..d1bb688 100644 --- a/lib/libc/locale/querylocale.3 +++ b/lib/libc/locale/querylocale.3 @@ -36,7 +36,7 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In xlocale.h +.In locale.h .Ft const char * .Fn querylocale "int mask" "locale_t locale" .Sh DESCRIPTION diff --git a/lib/libc/locale/uselocale.3 b/lib/libc/locale/uselocale.3 index df29a62..96d0008 100644 --- a/lib/libc/locale/uselocale.3 +++ b/lib/libc/locale/uselocale.3 @@ -36,7 +36,7 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In xlocale.h +.In locale.h .Ft locale_t .Fn uselocale "locale_t locale" .Sh DESCRIPTION diff --git a/lib/libc/net/sctp_recvmsg.3 b/lib/libc/net/sctp_recvmsg.3 index bb1cf06..945797d 100644 --- a/lib/libc/net/sctp_recvmsg.3 +++ b/lib/libc/net/sctp_recvmsg.3 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 13, 2007 +.Dd April 23, 2015 .Dt SCTP_RECVMSG 3 .Os .Sh NAME @@ -98,13 +98,13 @@ receive buffer, then the argument will .Em not have the -.Dv MSG_EOF +.Dv MSG_EOR flag applied. If the message is a complete message then the .Fa flags argument will have -.Dv MSG_EOF +.Dv MSG_EOR set. Locally detected errors are indicated by a return value of -1 with diff --git a/lib/libc/nls/catopen.3 b/lib/libc/nls/catopen.3 index 7a16ee5..7744b0b 100644 --- a/lib/libc/nls/catopen.3 +++ b/lib/libc/nls/catopen.3 @@ -94,7 +94,7 @@ An empty string is substituted for undefined values. Path names templates defined in .Ev NLSPATH are separated by colons -.No ( Sq \&: ) . +.Pq Sq \&: . A leading or two adjacent colons is equivalent to specifying %N. .Pp diff --git a/lib/libc/regex/re_format.7 b/lib/libc/regex/re_format.7 index 089316b..b3f9561 100644 --- a/lib/libc/regex/re_format.7 +++ b/lib/libc/regex/re_format.7 @@ -392,10 +392,12 @@ and .Ql ?\& are ordinary characters, and their functionality can be expressed using bounds -.No ( Ql {1,} +.Po +.Ql {1,} or .Ql {0,1} -respectively). +respectively +.Pc . Also note that .Ql x+ in modern REs is equivalent to diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c index 2da5066..2f2d827 100644 --- a/lib/libc/regex/regcomp.c +++ b/lib/libc/regex/regcomp.c @@ -1726,13 +1726,13 @@ computematchjumps(struct parse *p, struct re_guts *g) if (p->error != 0) return; - pmatches = (int*) malloc(g->mlen * sizeof(unsigned int)); + pmatches = (int*) malloc(g->mlen * sizeof(int)); if (pmatches == NULL) { g->matchjump = NULL; return; } - g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int)); + g->matchjump = (int*) malloc(g->mlen * sizeof(int)); if (g->matchjump == NULL) { /* Not a fatal error */ free(pmatches); return; diff --git a/lib/libc/regex/regex.3 b/lib/libc/regex/regex.3 index ea1ba25..6df2f09 100644 --- a/lib/libc/regex/regex.3 +++ b/lib/libc/regex/regex.3 @@ -420,10 +420,12 @@ it should have been the result from the most recent using that .Ft regex_t . The -.Fn ( regerror +.Po +.Fn regerror may be able to supply a more detailed message using information from the -.Ft regex_t . ) +.Ft regex_t . +.Pc The .Fn regerror function diff --git a/lib/libc/rpc/rpcbind.3 b/lib/libc/rpc/rpcbind.3 index 0b716ca..3bf8be9 100644 --- a/lib/libc/rpc/rpcbind.3 +++ b/lib/libc/rpc/rpcbind.3 @@ -25,7 +25,7 @@ .Ft bool_t .Fn rpcb_gettime "const char *host" "time_t * timep" .Ft "enum clnt_stat" -.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum, const rpcvers_t versnum" "const rpcproc_t procnum, const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout, const struct netbuf *svcaddr" +.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const rpcproc_t procnum" "const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout" "const struct netbuf *svcaddr" .Ft bool_t .Fn rpcb_set "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf" "const struct netbuf *svcaddr" .Ft bool_t diff --git a/lib/libc/stdio/open_memstream.3 b/lib/libc/stdio/open_memstream.3 index 117dcb2..e01952b 100644 --- a/lib/libc/stdio/open_memstream.3 +++ b/lib/libc/stdio/open_memstream.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013 Advanced Computing Technologies LLC +.\" Copyright (c) 2013 Hudson River Trading LLC .\" Written by: John H. Baldwin <jhb@FreeBSD.org> .\" All rights reserved. .\" diff --git a/lib/libc/stdio/open_memstream.c b/lib/libc/stdio/open_memstream.c index aa50822..baa71e4 100644 --- a/lib/libc/stdio/open_memstream.c +++ b/lib/libc/stdio/open_memstream.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013 Advanced Computing Technologies LLC + * Copyright (c) 2013 Hudson River Trading LLC * Written by: John H. Baldwin <jhb@FreeBSD.org> * All rights reserved. * diff --git a/lib/libc/stdio/open_wmemstream.c b/lib/libc/stdio/open_wmemstream.c index cf2968a..299e3d8 100644 --- a/lib/libc/stdio/open_wmemstream.c +++ b/lib/libc/stdio/open_wmemstream.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2013 Advanced Computing Technologies LLC + * Copyright (c) 2013 Hudson River Trading LLC * Written by: John H. Baldwin <jhb@FreeBSD.org> * All rights reserved. * diff --git a/lib/libc/sys/closefrom.2 b/lib/libc/sys/closefrom.2 index ffaa001..a0b5fc2 100644 --- a/lib/libc/sys/closefrom.2 +++ b/lib/libc/sys/closefrom.2 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2009 Advanced Computing Technologies LLC +.\" Copyright (c) 2009 Hudson River Trading LLC .\" Written by: John H. Baldwin <jhb@FreeBSD.org> .\" All rights reserved. .\" diff --git a/lib/libc/sys/posix_openpt.2 b/lib/libc/sys/posix_openpt.2 index d34385f..b7e345c 100644 --- a/lib/libc/sys/posix_openpt.2 +++ b/lib/libc/sys/posix_openpt.2 @@ -137,4 +137,4 @@ is included for compatibility; in opening a terminal does not cause it to become a process's controlling terminal. .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org diff --git a/lib/libc/sys/procctl.2 b/lib/libc/sys/procctl.2 index 2c77901..76a3cef 100644 --- a/lib/libc/sys/procctl.2 +++ b/lib/libc/sys/procctl.2 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013 Advanced Computing Technologies LLC +.\" Copyright (c) 2013 Hudson River Trading LLC .\" Written by: John H. Baldwin <jhb@FreeBSD.org> .\" All rights reserved. .\" diff --git a/lib/libc/tests/db/Makefile b/lib/libc/tests/db/Makefile index 323a9f0..ed1d6ca 100644 --- a/lib/libc/tests/db/Makefile +++ b/lib/libc/tests/db/Makefile @@ -11,6 +11,7 @@ FILESDIR= ${TESTSDIR} FILES= README NETBSD_ATF_TESTS_SH+= db_test +ATF_TESTS_SH_SED_db_test= -e 's,/bin/csh,/bin/cat,g' .include "../Makefile.netbsd-tests" diff --git a/lib/libc/tests/sys/Makefile b/lib/libc/tests/sys/Makefile index 89431bc..5e457fd 100644 --- a/lib/libc/tests/sys/Makefile +++ b/lib/libc/tests/sys/Makefile @@ -12,7 +12,9 @@ NETBSD_ATF_TESTS_C+= clock_gettime_test NETBSD_ATF_TESTS_C+= connect_test NETBSD_ATF_TESTS_C+= dup_test NETBSD_ATF_TESTS_C+= fsync_test +.if ${MACHINE} != "arm64" # ARM64TODO: Missing makecontext NETBSD_ATF_TESTS_C+= getcontext_test +.endif NETBSD_ATF_TESTS_C+= getgroups_test NETBSD_ATF_TESTS_C+= getitimer_test NETBSD_ATF_TESTS_C+= getlogin_test diff --git a/lib/libcapsicum/libcapsicum_dns.c b/lib/libcapsicum/libcapsicum_dns.c index 113f8dc..6f240bd 100644 --- a/lib/libcapsicum/libcapsicum_dns.c +++ b/lib/libcapsicum/libcapsicum_dns.c @@ -30,6 +30,7 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <assert.h> #include <netdb.h> #include <stdlib.h> #include <string.h> @@ -67,6 +68,8 @@ static struct hostent * hostent_unpack(const nvlist_t *nvl, struct hostent *hp) { unsigned int ii, nitems; + char nvlname[64]; + int n; hostent_free(hp); @@ -81,8 +84,10 @@ hostent_unpack(const nvlist_t *nvl, struct hostent *hp) if (hp->h_aliases == NULL) goto fail; for (ii = 0; ii < nitems; ii++) { + n = snprintf(nvlname, sizeof(nvlname), "alias%u", ii); + assert(n > 0 && n < (int)sizeof(nvlname)); hp->h_aliases[ii] = - strdup(nvlist_getf_string(nvl, "alias%u", ii)); + strdup(nvlist_get_string(nvl, nvlname)); if (hp->h_aliases[ii] == NULL) goto fail; } @@ -96,7 +101,9 @@ hostent_unpack(const nvlist_t *nvl, struct hostent *hp) hp->h_addr_list[ii] = malloc(hp->h_length); if (hp->h_addr_list[ii] == NULL) goto fail; - bcopy(nvlist_getf_binary(nvl, NULL, "addr%u", ii), + n = snprintf(nvlname, sizeof(nvlname), "addr%u", ii); + assert(n > 0 && n < (int)sizeof(nvlname)); + bcopy(nvlist_get_binary(nvl, nvlname, NULL), hp->h_addr_list[ii], hp->h_length); } hp->h_addr_list[ii] = NULL; @@ -208,8 +215,9 @@ cap_getaddrinfo(cap_channel_t *chan, const char *hostname, const char *servname, struct addrinfo *firstai, *prevai, *curai; unsigned int ii; const nvlist_t *nvlai; + char nvlname[64]; nvlist_t *nvl; - int error; + int error, n; nvl = nvlist_create(0); nvlist_add_string(nvl, "cmd", "getaddrinfo"); @@ -237,9 +245,11 @@ cap_getaddrinfo(cap_channel_t *chan, const char *hostname, const char *servname, nvlai = NULL; firstai = prevai = curai = NULL; for (ii = 0; ; ii++) { - if (!nvlist_existsf_nvlist(nvl, "res%u", ii)) + n = snprintf(nvlname, sizeof(nvlname), "res%u", ii); + assert(n > 0 && n < (int)sizeof(nvlname)); + if (!nvlist_exists_nvlist(nvl, nvlname)) break; - nvlai = nvlist_getf_nvlist(nvl, "res%u", ii); + nvlai = nvlist_get_nvlist(nvl, nvlname); curai = addrinfo_unpack(nvlai); if (curai == NULL) break; @@ -314,6 +324,8 @@ cap_dns_type_limit(cap_channel_t *chan, const char * const *types, { nvlist_t *limits; unsigned int i; + char nvlname[64]; + int n; if (cap_limit_get(chan, &limits) < 0) return (-1); @@ -321,8 +333,11 @@ cap_dns_type_limit(cap_channel_t *chan, const char * const *types, limits = nvlist_create(0); else limit_remove(limits, "type"); - for (i = 0; i < ntypes; i++) - nvlist_addf_string(limits, types[i], "type%u", i); + for (i = 0; i < ntypes; i++) { + n = snprintf(nvlname, sizeof(nvlname), "type%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_string(limits, nvlname, types[i]); + } return (cap_limit_set(chan, limits)); } @@ -332,6 +347,8 @@ cap_dns_family_limit(cap_channel_t *chan, const int *families, { nvlist_t *limits; unsigned int i; + char nvlname[64]; + int n; if (cap_limit_get(chan, &limits) < 0) return (-1); @@ -340,8 +357,9 @@ cap_dns_family_limit(cap_channel_t *chan, const int *families, else limit_remove(limits, "family"); for (i = 0; i < nfamilies; i++) { - nvlist_addf_number(limits, (uint64_t)families[i], - "family%u", i); + n = snprintf(nvlname, sizeof(nvlname), "family%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_number(limits, nvlname, (uint64_t)families[i]); } return (cap_limit_set(chan, limits)); } diff --git a/lib/libcapsicum/libcapsicum_grp.c b/lib/libcapsicum/libcapsicum_grp.c index c679ce9..adfbc95 100644 --- a/lib/libcapsicum/libcapsicum_grp.c +++ b/lib/libcapsicum/libcapsicum_grp.c @@ -94,9 +94,10 @@ group_unpack_members(const nvlist_t *nvl, char ***fieldp, char **bufferp, size_t *bufsizep) { const char *mem; - char **outstrs, *str; + char **outstrs, *str, nvlname[64]; size_t nmem, datasize, strsize; unsigned int ii; + int n; if (!nvlist_exists_number(nvl, "gr_nmem")) { datasize = _ALIGNBYTES + sizeof(char *); @@ -113,7 +114,9 @@ group_unpack_members(const nvlist_t *nvl, char ***fieldp, char **bufferp, nmem = (size_t)nvlist_get_number(nvl, "gr_nmem"); datasize = _ALIGNBYTES + sizeof(char *) * (nmem + 1); for (ii = 0; ii < nmem; ii++) { - mem = dnvlist_getf_string(nvl, NULL, "gr_mem[%u]", ii); + n = snprintf(nvlname, sizeof(nvlname), "gr_mem[%u]", ii); + assert(n > 0 && n < (int)sizeof(nvlname)); + mem = dnvlist_get_string(nvl, nvlname, NULL); if (mem == NULL) return (EINVAL); datasize += strlen(mem) + 1; @@ -125,7 +128,9 @@ group_unpack_members(const nvlist_t *nvl, char ***fieldp, char **bufferp, outstrs = (char **)_ALIGN(*bufferp); str = (char *)outstrs + sizeof(char *) * (nmem + 1); for (ii = 0; ii < nmem; ii++) { - mem = nvlist_getf_string(nvl, "gr_mem[%u]", ii); + n = snprintf(nvlname, sizeof(nvlname), "gr_mem[%u]", ii); + assert(n > 0 && n < (int)sizeof(nvlname)); + mem = nvlist_get_string(nvl, nvlname); strsize = strlen(mem) + 1; memcpy(str, mem, strsize); outstrs[ii] = str; @@ -407,6 +412,8 @@ cap_grp_limit_groups(cap_channel_t *chan, const char * const *names, { nvlist_t *limits, *groups; unsigned int i; + char nvlname[64]; + int n; if (cap_limit_get(chan, &limits) < 0) return (-1); @@ -417,10 +424,16 @@ cap_grp_limit_groups(cap_channel_t *chan, const char * const *names, nvlist_free_nvlist(limits, "groups"); } groups = nvlist_create(0); - for (i = 0; i < ngids; i++) - nvlist_addf_number(groups, (uint64_t)gids[i], "gid%u", i); - for (i = 0; i < nnames; i++) - nvlist_addf_string(groups, names[i], "name%u", i); + for (i = 0; i < ngids; i++) { + n = snprintf(nvlname, sizeof(nvlname), "gid%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_number(groups, nvlname, (uint64_t)gids[i]); + } + for (i = 0; i < nnames; i++) { + n = snprintf(nvlname, sizeof(nvlname), "gid%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_string(groups, nvlname, names[i]); + } nvlist_move_nvlist(limits, "groups", groups); return (cap_limit_set(chan, limits)); } diff --git a/lib/libcapsicum/libcapsicum_pwd.c b/lib/libcapsicum/libcapsicum_pwd.c index 792fb66..4c15703 100644 --- a/lib/libcapsicum/libcapsicum_pwd.c +++ b/lib/libcapsicum/libcapsicum_pwd.c @@ -364,7 +364,9 @@ cap_pwd_limit_users(cap_channel_t *chan, const char * const *names, size_t nnames, uid_t *uids, size_t nuids) { nvlist_t *limits, *users; + char nvlname[64]; unsigned int i; + int n; if (cap_limit_get(chan, &limits) < 0) return (-1); @@ -375,10 +377,16 @@ cap_pwd_limit_users(cap_channel_t *chan, const char * const *names, nvlist_free_nvlist(limits, "users"); } users = nvlist_create(0); - for (i = 0; i < nuids; i++) - nvlist_addf_number(users, (uint64_t)uids[i], "uid%u", i); - for (i = 0; i < nnames; i++) - nvlist_addf_string(users, names[i], "name%u", i); + for (i = 0; i < nuids; i++) { + n = snprintf(nvlname, sizeof(nvlname), "uid%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_number(users, nvlname, (uint64_t)uids[i]); + } + for (i = 0; i < nnames; i++) { + n = snprintf(nvlname, sizeof(nvlname), "name%u", i); + assert(n > 0 && n < (int)sizeof(nvlname)); + nvlist_add_string(users, nvlname, names[i]); + } nvlist_move_nvlist(limits, "users", users); return (cap_limit_set(chan, limits)); } diff --git a/lib/libedit/el.c b/lib/libedit/el.c index beb961e..a0d7015 100644 --- a/lib/libedit/el.c +++ b/lib/libedit/el.c @@ -96,7 +96,7 @@ el_init_fd(const char *prog, FILE *fin, FILE *fout, FILE *ferr, */ el->el_flags = 0; #ifdef WIDECHAR - if (setlocale(LC_CTYPE, "") != NULL) { + if (setlocale(LC_CTYPE, NULL) != NULL) { if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) el->el_flags |= CHARSET_IS_UTF8; } diff --git a/lib/libgeom/geom_xml2tree.c b/lib/libgeom/geom_xml2tree.c index d5d4f31..2c23361 100644 --- a/lib/libgeom/geom_xml2tree.c +++ b/lib/libgeom/geom_xml2tree.c @@ -257,6 +257,7 @@ EndElement(void *userData, const char *name) if (!strcmp(name, "config")) { mt->config = NULL; + free(p); return; } diff --git a/lib/libmd/mdXhl.c b/lib/libmd/mdXhl.c index e69e5e5..2954548 100644 --- a/lib/libmd/mdXhl.c +++ b/lib/libmd/mdXhl.c @@ -74,7 +74,7 @@ MDXFileChunk(const char *filename, char *buf, off_t ofs, off_t len) i = read(f, buffer, sizeof(buffer)); else i = read(f, buffer, n); - if (i < 0) + if (i <= 0) break; MDXUpdate(&ctx, buffer, i); n -= i; diff --git a/lib/libnv/Makefile b/lib/libnv/Makefile index f7853b0..8b2fc78 100644 --- a/lib/libnv/Makefile +++ b/lib/libnv/Makefile @@ -22,147 +22,66 @@ MAN+= nv.3 MLINKS+=nv.3 libnv.3 \ nv.3 nvlist.3 -MLINKS+=nv.3 nvlist_create.3 \ - nv.3 nvlist_destroy.3 \ - nv.3 nvlist_error.3 \ - nv.3 nvlist_set_error.3 \ - nv.3 nvlist_empty.3 \ +MLINKS+=nv.3 nvlist_add_binary.3 \ + nv.3 nvlist_add_bool.3 \ + nv.3 nvlist_add_descriptor.3 \ + nv.3 nvlist_add_null.3 \ + nv.3 nvlist_add_number.3 \ + nv.3 nvlist_add_nvlist.3 \ + nv.3 nvlist_add_string.3 \ + nv.3 nvlist_add_stringf.3 \ + nv.3 nvlist_add_stringv.3 \ nv.3 nvlist_clone.3 \ + nv.3 nvlist_create.3 \ + nv.3 nvlist_destroy.3 \ nv.3 nvlist_dump.3 \ - nv.3 nvlist_fdump.3 \ - nv.3 nvlist_size.3 \ - nv.3 nvlist_pack.3 \ - nv.3 nvlist_unpack.3 \ - nv.3 nvlist_send.3 \ - nv.3 nvlist_recv.3 \ - nv.3 nvlist_xfer.3 \ - nv.3 nvlist_next.3 \ + nv.3 nvlist_empty.3 \ + nv.3 nvlist_error.3 \ nv.3 nvlist_exists.3 \ - nv.3 nvlist_exists_type.3 \ - nv.3 nvlist_exists_null.3 \ + nv.3 nvlist_exists_binary.3 \ nv.3 nvlist_exists_bool.3 \ + nv.3 nvlist_exists_descriptor.3 \ + nv.3 nvlist_exists_null.3 \ nv.3 nvlist_exists_number.3 \ - nv.3 nvlist_exists_string.3 \ nv.3 nvlist_exists_nvlist.3 \ - nv.3 nvlist_exists_descriptor.3 \ - nv.3 nvlist_exists_binary.3 \ - nv.3 nvlist_add_null.3 \ - nv.3 nvlist_add_bool.3 \ - nv.3 nvlist_add_number.3 \ - nv.3 nvlist_add_string.3 \ - nv.3 nvlist_add_stringf.3 \ - nv.3 nvlist_add_stringv.3 \ - nv.3 nvlist_add_nvlist.3 \ - nv.3 nvlist_add_descriptor.3 \ - nv.3 nvlist_add_binary.3 \ - nv.3 nvlist_move_string.3 \ - nv.3 nvlist_move_nvlist.3 \ - nv.3 nvlist_move_descriptor.3 \ - nv.3 nvlist_move_binary.3 \ + nv.3 nvlist_exists_string.3 \ + nv.3 nvlist_exists_type.3 \ + nv.3 nvlist_fdump.3 \ + nv.3 nvlist_flags.3 \ + nv.3 nvlist_free.3 \ + nv.3 nvlist_free_binary.3 \ + nv.3 nvlist_free_bool.3 \ + nv.3 nvlist_free_descriptor.3 \ + nv.3 nvlist_free_null.3 \ + nv.3 nvlist_free_number.3 \ + nv.3 nvlist_free_nvlist.3 \ + nv.3 nvlist_free_string.3 \ + nv.3 nvlist_free_type.3 \ + nv.3 nvlist_get_binary.3 \ nv.3 nvlist_get_bool.3 \ + nv.3 nvlist_get_descriptor.3 \ nv.3 nvlist_get_number.3 \ - nv.3 nvlist_get_string.3 \ nv.3 nvlist_get_nvlist.3 \ - nv.3 nvlist_get_descriptor.3 \ - nv.3 nvlist_get_binary.3 \ nv.3 nvlist_get_parent.3 \ + nv.3 nvlist_get_string.3 \ + nv.3 nvlist_move_binary.3 \ + nv.3 nvlist_move_descriptor.3 \ + nv.3 nvlist_move_nvlist.3 \ + nv.3 nvlist_move_string.3 \ + nv.3 nvlist_next.3 \ + nv.3 nvlist_pack.3 \ + nv.3 nvlist_recv.3 \ + nv.3 nvlist_send.3 \ + nv.3 nvlist_set_error.3 \ + nv.3 nvlist_size.3 \ + nv.3 nvlist_take_binary.3 \ nv.3 nvlist_take_bool.3 \ + nv.3 nvlist_take_descriptor.3 \ nv.3 nvlist_take_number.3 \ - nv.3 nvlist_take_string.3 \ nv.3 nvlist_take_nvlist.3 \ - nv.3 nvlist_take_descriptor.3 \ - nv.3 nvlist_take_binary.3 \ - nv.3 nvlist_free.3 \ - nv.3 nvlist_free_type.3 \ - nv.3 nvlist_free_null.3 \ - nv.3 nvlist_free_bool.3 \ - nv.3 nvlist_free_number.3 \ - nv.3 nvlist_free_string.3 \ - nv.3 nvlist_free_nvlist.3 \ - nv.3 nvlist_free_descriptor.3 \ - nv.3 nvlist_free_binary.3 -MLINKS+=nv.3 nvlist_existsf.3 \ - nv.3 nvlist_existsf_type.3 \ - nv.3 nvlist_existsf_null.3 \ - nv.3 nvlist_existsf_bool.3 \ - nv.3 nvlist_existsf_number.3 \ - nv.3 nvlist_existsf_string.3 \ - nv.3 nvlist_existsf_nvlist.3 \ - nv.3 nvlist_existsf_descriptor.3 \ - nv.3 nvlist_existsf_binary.3 \ - nv.3 nvlist_addf_null.3 \ - nv.3 nvlist_addf_bool.3 \ - nv.3 nvlist_addf_number.3 \ - nv.3 nvlist_addf_string.3 \ - nv.3 nvlist_addf_nvlist.3 \ - nv.3 nvlist_addf_descriptor.3 \ - nv.3 nvlist_addf_binary.3 \ - nv.3 nvlist_movef_string.3 \ - nv.3 nvlist_movef_nvlist.3 \ - nv.3 nvlist_movef_descriptor.3 \ - nv.3 nvlist_movef_binary.3 \ - nv.3 nvlist_getf_bool.3 \ - nv.3 nvlist_getf_number.3 \ - nv.3 nvlist_getf_string.3 \ - nv.3 nvlist_getf_nvlist.3 \ - nv.3 nvlist_getf_descriptor.3 \ - nv.3 nvlist_getf_binary.3 \ - nv.3 nvlist_takef_bool.3 \ - nv.3 nvlist_takef_number.3 \ - nv.3 nvlist_takef_string.3 \ - nv.3 nvlist_takef_nvlist.3 \ - nv.3 nvlist_takef_descriptor.3 \ - nv.3 nvlist_takef_binary.3 \ - nv.3 nvlist_freef.3 \ - nv.3 nvlist_freef_type.3 \ - nv.3 nvlist_freef_null.3 \ - nv.3 nvlist_freef_bool.3 \ - nv.3 nvlist_freef_number.3 \ - nv.3 nvlist_freef_string.3 \ - nv.3 nvlist_freef_nvlist.3 \ - nv.3 nvlist_freef_descriptor.3 \ - nv.3 nvlist_freef_binary.3 -MLINKS+=nv.3 nvlist_existsv.3 \ - nv.3 nvlist_existsv_type.3 \ - nv.3 nvlist_existsv_null.3 \ - nv.3 nvlist_existsv_bool.3 \ - nv.3 nvlist_existsv_number.3 \ - nv.3 nvlist_existsv_string.3 \ - nv.3 nvlist_existsv_nvlist.3 \ - nv.3 nvlist_existsv_descriptor.3 \ - nv.3 nvlist_existsv_binary.3 \ - nv.3 nvlist_addv_null.3 \ - nv.3 nvlist_addv_bool.3 \ - nv.3 nvlist_addv_number.3 \ - nv.3 nvlist_addv_string.3 \ - nv.3 nvlist_addv_nvlist.3 \ - nv.3 nvlist_addv_descriptor.3 \ - nv.3 nvlist_addv_binary.3 \ - nv.3 nvlist_movev_string.3 \ - nv.3 nvlist_movev_nvlist.3 \ - nv.3 nvlist_movev_descriptor.3 \ - nv.3 nvlist_movev_binary.3 \ - nv.3 nvlist_getv_bool.3 \ - nv.3 nvlist_getv_number.3 \ - nv.3 nvlist_getv_string.3 \ - nv.3 nvlist_getv_nvlist.3 \ - nv.3 nvlist_getv_descriptor.3 \ - nv.3 nvlist_getv_binary.3 \ - nv.3 nvlist_takev_bool.3 \ - nv.3 nvlist_takev_number.3 \ - nv.3 nvlist_takev_string.3 \ - nv.3 nvlist_takev_nvlist.3 \ - nv.3 nvlist_takev_descriptor.3 \ - nv.3 nvlist_takev_binary.3 \ - nv.3 nvlist_freev.3 \ - nv.3 nvlist_freev_type.3 \ - nv.3 nvlist_freev_null.3 \ - nv.3 nvlist_freev_bool.3 \ - nv.3 nvlist_freev_number.3 \ - nv.3 nvlist_freev_string.3 \ - nv.3 nvlist_freev_nvlist.3 \ - nv.3 nvlist_freev_descriptor.3 \ - nv.3 nvlist_freev_binary.3 + nv.3 nvlist_take_string.3 \ + nv.3 nvlist_unpack.3 \ + nv.3 nvlist_xfer.3 WARNS?= 6 diff --git a/lib/libnv/nv.3 b/lib/libnv/nv.3 index be6e0fe..bbb7b03 100644 --- a/lib/libnv/nv.3 +++ b/lib/libnv/nv.3 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 30, 2015 +.Dd May 1, 2015 .Dt NV 3 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nm nvlist_error , .Nm nvlist_set_error , .Nm nvlist_empty , +.Nm nvlist_flags , .Nm nvlist_exists , .Nm nvlist_free , .Nm nvlist_clone , @@ -68,6 +69,8 @@ .Fn nvlist_set_error "nvlist_t *nvl, int error" .Ft bool .Fn nvlist_empty "const nvlist_t *nvl" +.Ft int +.Fn nvlist_flags "const nvlist_t *nvl" .\" .Ft "nvlist_t *" .Fn nvlist_clone "const nvlist_t *nvl" @@ -269,6 +272,12 @@ otherwise. The nvlist must not be in error state. .Pp The +.Fn nvlist_flags +function returns flags used to create the nvlist with the +.Fn nvlist_create +function. +.Pp +The .Fn nvlist_clone functions clones the given nvlist. The clone shares no resources with its origin. diff --git a/lib/libnv/tests/dnv_tests.cc b/lib/libnv/tests/dnv_tests.cc index ad26f38..2f92d9d 100644 --- a/lib/libnv/tests/dnv_tests.cc +++ b/lib/libnv/tests/dnv_tests.cc @@ -45,7 +45,7 @@ ATF_TEST_CASE_BODY(dnvlist_get_bool__present) nvlist_add_bool(nvl, key, value); ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, key, false), value); - ATF_REQUIRE_EQ(dnvlist_getf_bool(nvl, false, "%c%s", 'n', "ame"), value); + ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, "name", false), value); nvlist_destroy(nvl); } @@ -60,12 +60,12 @@ ATF_TEST_CASE_BODY(dnvlist_get_bool__default_value) nvl = nvlist_create(0); ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, key, false), false); - ATF_REQUIRE_EQ(dnvlist_getf_bool(nvl, true, "%d", 123), true); + ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, "123", true), true); nvlist_add_bool(nvl, key, true); ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, "otherkey", true), true); - ATF_REQUIRE_EQ(dnvlist_getf_bool(nvl, false, "%d%c", 12, 'c'), false); + ATF_REQUIRE_EQ(dnvlist_get_bool(nvl, "12c", false), false); nvlist_destroy(nvl); } @@ -84,7 +84,7 @@ ATF_TEST_CASE_BODY(dnvlist_get_number__present) nvlist_add_number(nvl, key, value); ATF_REQUIRE_EQ(dnvlist_get_number(nvl, key, 19), value); - ATF_REQUIRE_EQ(dnvlist_getf_number(nvl, 65, "key"), value); + ATF_REQUIRE_EQ(dnvlist_get_number(nvl, "key", 65), value); nvlist_destroy(nvl); } @@ -99,12 +99,11 @@ ATF_TEST_CASE_BODY(dnvlist_get_number__default_value) nvl = nvlist_create(0); ATF_REQUIRE_EQ(dnvlist_get_number(nvl, key, 5), 5); - ATF_REQUIRE_EQ(dnvlist_getf_number(nvl, 12, "%s", key), 12); + ATF_REQUIRE_EQ(dnvlist_get_number(nvl, "1234", 5), 5); nvlist_add_number(nvl, key, 24841); - ATF_REQUIRE_EQ(dnvlist_get_number(nvl, "hthth", 184), 184); - ATF_REQUIRE_EQ(dnvlist_getf_number(nvl, 5641, "%d", 1234), 5641); + ATF_REQUIRE_EQ(dnvlist_get_number(nvl, "1234", 5641), 5641); nvlist_destroy(nvl); } @@ -124,7 +123,7 @@ ATF_TEST_CASE_BODY(dnvlist_get_string__present) ATF_REQUIRE_EQ(strcmp(dnvlist_get_string(nvl, key, "g"), value), 0); - actual_value = dnvlist_getf_string(nvl, "rs", "%s", key); + actual_value = dnvlist_get_string(nvl, key, "rs"); ATF_REQUIRE_EQ(strcmp(actual_value, value), 0); nvlist_destroy(nvl); @@ -142,13 +141,13 @@ ATF_TEST_CASE_BODY(dnvlist_get_string__default_value) ATF_REQUIRE_EQ(strcmp(dnvlist_get_string(nvl, key, "bar"), "bar"), 0); - actual_value = dnvlist_getf_string(nvl, "d", "%s", key); + actual_value = dnvlist_get_string(nvl, key, "d"); ATF_REQUIRE_EQ(strcmp(actual_value, "d"), 0); nvlist_add_string(nvl, key, "cxhweh"); ATF_REQUIRE_EQ(strcmp(dnvlist_get_string(nvl, "hthth", "fd"), "fd"), 0); - actual_value = dnvlist_getf_string(nvl, "5", "%s", "5"); + actual_value = dnvlist_get_string(nvl, "5", "5"); ATF_REQUIRE_EQ(strcmp("5", "5"), 0); nvlist_destroy(nvl); @@ -172,10 +171,6 @@ ATF_TEST_CASE_BODY(dnvlist_get_nvlist__present) ATF_REQUIRE(actual_value != NULL); ATF_REQUIRE(nvlist_empty(actual_value)); - actual_value = dnvlist_getf_nvlist(nvl, NULL, "%s", key); - ATF_REQUIRE(actual_value != NULL); - ATF_REQUIRE(nvlist_empty(actual_value)); - nvlist_destroy(nvl); } @@ -191,11 +186,10 @@ ATF_TEST_CASE_BODY(dnvlist_get_nvlist__default_value) dummy = nvlist_create(0); ATF_REQUIRE_EQ(dnvlist_get_nvlist(nvl, key, dummy), dummy); - ATF_REQUIRE_EQ(dnvlist_getf_nvlist(nvl, dummy, "%s", key), dummy); nvlist_move_nvlist(nvl, key, nvlist_create(0)); ATF_REQUIRE_EQ(dnvlist_get_nvlist(nvl, "456", dummy), dummy); - ATF_REQUIRE_EQ(dnvlist_getf_nvlist(nvl, dummy, "%s", "gh"), dummy); + ATF_REQUIRE_EQ(dnvlist_get_nvlist(nvl, "gh", dummy), dummy); nvlist_destroy(nvl); } @@ -226,10 +220,6 @@ ATF_TEST_CASE_BODY(dnvlist_get_binary__present) ATF_REQUIRE_EQ(value_size, actual_size); ATF_REQUIRE_EQ(memcmp(actual_value, value, actual_size), 0); - actual_value = dnvlist_getf_binary(nvl, &actual_size, "g", 1, "%s", k); - ATF_REQUIRE_EQ(value_size, actual_size); - ATF_REQUIRE_EQ(memcmp(actual_value, value, actual_size), 0); - nvlist_destroy(nvl); } @@ -251,8 +241,8 @@ ATF_TEST_CASE_BODY(dnvlist_get_binary__default_value) ATF_REQUIRE_EQ(memcmp(actual_value, default_value, actual_size), 0); set_const_binary_value(default_value, default_size, "atf"); - actual_value = dnvlist_getf_binary(nvl, &actual_size, default_value, - default_size, "%s", key); + actual_value = dnvlist_get_binary(nvl, key, &actual_size, default_value, + default_size); ATF_REQUIRE_EQ(default_size, actual_size); ATF_REQUIRE_EQ(memcmp(actual_value, default_value, actual_size), 0); @@ -266,8 +256,8 @@ ATF_TEST_CASE_BODY(dnvlist_get_binary__default_value) set_const_binary_value(default_value, default_size, "rrhgrythtyrtgbrhgrtdsvdfbtjlkul"); - actual_value = dnvlist_getf_binary(nvl, &actual_size, default_value, - default_size, "s"); + actual_value = dnvlist_get_binary(nvl, "s", &actual_size, default_value, + default_size); ATF_REQUIRE_EQ(default_size, actual_size); ATF_REQUIRE_EQ(memcmp(actual_value, default_value, actual_size), 0); diff --git a/lib/libnv/tests/nv_tests.cc b/lib/libnv/tests/nv_tests.cc index bfdc972..2d9fd97 100644 --- a/lib/libnv/tests/nv_tests.cc +++ b/lib/libnv/tests/nv_tests.cc @@ -77,9 +77,8 @@ ATF_TEST_CASE_BODY(nvlist_add_null__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s", key)); ATF_REQUIRE(nvlist_exists_null(nvl, key)); - ATF_REQUIRE(nvlist_existsf_null(nvl, "key")); + ATF_REQUIRE(nvlist_exists_null(nvl, "key")); /* Iterate over the nvlist; ensure that it has only our one key. */ it = NULL; @@ -108,11 +107,10 @@ ATF_TEST_CASE_BODY(nvlist_add_bool__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s%s", "na", "me")); + ATF_REQUIRE(nvlist_exists(nvl, "name")); ATF_REQUIRE(nvlist_exists_bool(nvl, key)); - ATF_REQUIRE(nvlist_existsf_bool(nvl, "%s%c", "nam", 'e')); + ATF_REQUIRE(nvlist_exists_bool(nvl, "name")); ATF_REQUIRE_EQ(nvlist_get_bool(nvl, key), true); - ATF_REQUIRE_EQ(nvlist_getf_bool(nvl, "%c%s", 'n', "ame"), true); /* Iterate over the nvlist; ensure that it has only our one key. */ it = NULL; @@ -143,11 +141,9 @@ ATF_TEST_CASE_BODY(nvlist_add_number__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s%d", "foo", 123)); + ATF_REQUIRE(nvlist_exists(nvl, "foo123")); ATF_REQUIRE(nvlist_exists_number(nvl, key)); - ATF_REQUIRE(nvlist_existsf_number(nvl, "%s", key)); ATF_REQUIRE_EQ(nvlist_get_number(nvl, key), value); - ATF_REQUIRE_EQ(nvlist_getf_number(nvl, "%s", key), value); /* Iterate over the nvlist; ensure that it has only our one key. */ it = NULL; @@ -178,11 +174,10 @@ ATF_TEST_CASE_BODY(nvlist_add_string__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists(nvl, "test")); ATF_REQUIRE(nvlist_exists_string(nvl, key)); - ATF_REQUIRE(nvlist_existsf_string(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists_string(nvl, "test")); ATF_REQUIRE_EQ(strcmp(nvlist_get_string(nvl, key), value), 0); - ATF_REQUIRE_EQ(strcmp(nvlist_getf_string(nvl, "%s", key), value), 0); /* nvlist_add_* is required to clone the value, so check for that. */ ATF_REQUIRE(nvlist_get_string(nvl, key) != value); @@ -219,9 +214,9 @@ ATF_TEST_CASE_BODY(nvlist_add_nvlist__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists(nvl, "test")); ATF_REQUIRE(nvlist_exists_nvlist(nvl, key)); - ATF_REQUIRE(nvlist_existsf_nvlist(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists_nvlist(nvl, "test")); value = nvlist_get_nvlist(nvl, key); ATF_REQUIRE(nvlist_exists_null(value, subkey)); @@ -229,10 +224,6 @@ ATF_TEST_CASE_BODY(nvlist_add_nvlist__single_insert) /* nvlist_add_* is required to clone the value, so check for that. */ ATF_REQUIRE(sublist != value); - value = nvlist_getf_nvlist(nvl, "%s", key); - ATF_REQUIRE(nvlist_exists_null(value, subkey)); - ATF_REQUIRE(sublist != value); - /* Iterate over the nvlist; ensure that it has only our one key. */ it = NULL; ATF_REQUIRE_EQ(strcmp(nvlist_next(nvl, &type, &it), key), 0); @@ -283,9 +274,9 @@ ATF_TEST_CASE_BODY(nvlist_add_binary__single_insert) ATF_REQUIRE(!nvlist_empty(nvl)); ATF_REQUIRE(nvlist_exists(nvl, key)); - ATF_REQUIRE(nvlist_existsf(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists(nvl, "binary")); ATF_REQUIRE(nvlist_exists_binary(nvl, key)); - ATF_REQUIRE(nvlist_existsf_binary(nvl, "%s", key)); + ATF_REQUIRE(nvlist_exists_binary(nvl, "binary")); ret_value = nvlist_get_binary(nvl, key, &ret_size); ATF_REQUIRE_EQ(value_size, ret_size); @@ -294,11 +285,6 @@ ATF_TEST_CASE_BODY(nvlist_add_binary__single_insert) /* nvlist_add_* is required to clone the value, so check for that. */ ATF_REQUIRE(value != ret_value); - ret_value = nvlist_getf_binary(nvl, &ret_size, "%s", key); - ATF_REQUIRE_EQ(value_size, ret_size); - ATF_REQUIRE_EQ(memcmp(value, ret_value, ret_size), 0); - ATF_REQUIRE(value != ret_value); - /* Iterate over the nvlist; ensure that it has only our one key. */ it = NULL; ATF_REQUIRE_EQ(strcmp(nvlist_next(nvl, &type, &it), key), 0); diff --git a/lib/librt/Makefile b/lib/librt/Makefile index 3629610..5696610 100644 --- a/lib/librt/Makefile +++ b/lib/librt/Makefile @@ -19,6 +19,8 @@ PRECIOUSLIB= VERSION_MAP= ${.CURDIR}/Version.map -.include <bsd.arch.inc.mk> +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif .include <bsd.lib.mk> diff --git a/lib/librt/Makefile.amd64 b/lib/librt/Makefile.amd64 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/librt/Makefile.amd64 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/librt/Makefile.i386 b/lib/librt/Makefile.i386 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/librt/Makefile.i386 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/libstand/Makefile b/lib/libstand/Makefile index 7c6d718..2ee2921 100644 --- a/lib/libstand/Makefile +++ b/lib/libstand/Makefile @@ -11,6 +11,9 @@ MK_SSP= no .include <src.opts.mk> +LIBSTAND_SRC= ${.CURDIR} +LIBC_SRC= ${LIBSTAND_SRC}/../libc + LIB= stand NO_PIC= INCS= stand.h @@ -19,7 +22,7 @@ MAN= libstand.3 WARNS?= 0 CFLAGS+= -ffreestanding -Wformat -CFLAGS+= -I${.CURDIR} +CFLAGS+= -I${LIBSTAND_SRC} .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float @@ -54,54 +57,54 @@ SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c g # private (pruned) versions of libc string functions SRCS+= strcasecmp.c -.PATH: ${.CURDIR}/../libc/net +.PATH: ${LIBC_SRC}/net SRCS+= ntoh.c # string functions from libc -.PATH: ${.CURDIR}/../libc/string +.PATH: ${LIBC_SRC}/string SRCS+= bcmp.c bcopy.c bzero.c ffs.c memccpy.c memchr.c memcmp.c memcpy.c \ memmove.c memset.c qdivrem.c strcat.c strchr.c strcmp.c strcpy.c \ strcspn.c strlen.c strncat.c strncmp.c strncpy.c strpbrk.c \ strrchr.c strsep.c strspn.c strstr.c strtok.c swab.c .if ${MACHINE_CPUARCH} == "arm" -.PATH: ${.CURDIR}/../libc/arm/gen +.PATH: ${LIBC_SRC}/arm/gen # Compiler support functions -.PATH: ${.CURDIR}/../../contrib/compiler-rt/lib/builtins/ +.PATH: ${LIBSTAND_SRC}/../../contrib/compiler-rt/lib/builtins/ # __clzsi2 and ctzsi2 for various builtin functions SRCS+= clzsi2.c ctzsi2.c # Divide and modulus functions called by the compiler SRCS+= divmoddi4.c divmodsi4.c divdi3.c divsi3.c moddi3.c modsi3.c SRCS+= udivmoddi4.c udivmodsi4.c udivdi3.c udivsi3.c umoddi3.c umodsi3.c -.PATH: ${.CURDIR}/../../contrib/compiler-rt/lib/builtins/arm/ +.PATH: ${LIBSTAND_SRC}/../../contrib/compiler-rt/lib/builtins/arm/ SRCS+= aeabi_idivmod.S aeabi_ldivmod.S aeabi_uidivmod.S aeabi_uldivmod.S SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S .endif .if ${MACHINE_CPUARCH} == "aarch64" -.PATH: ${.CURDIR}/../libc/aarch64/gen +.PATH: ${LIBC_SRC}/aarch64/gen .endif .if ${MACHINE_CPUARCH} == "powerpc" -.PATH: ${.CURDIR}/../libc/quad +.PATH: ${LIBC_SRC}/quad SRCS+= ashldi3.c ashrdi3.c SRCS+= syncicache.c .endif # uuid functions from libc -.PATH: ${.CURDIR}/../libc/uuid +.PATH: ${LIBC_SRC}/uuid SRCS+= uuid_equal.c uuid_is_nil.c # _setjmp/_longjmp -.PATH: ${.CURDIR}/${MACHINE_CPUARCH} +.PATH: ${LIBSTAND_SRC}/${MACHINE_CPUARCH} SRCS+= _setjmp.S # decompression functionality from libbz2 # NOTE: to actually test this functionality after libbz2 upgrade compile # loader(8) with LOADER_BZIP2_SUPPORT defined -.PATH: ${.CURDIR}/../../contrib/bzip2 +.PATH: ${LIBSTAND_SRC}/../../contrib/bzip2 CFLAGS+= -DBZ_NO_STDIO -DBZ_NO_COMPRESS SRCS+= libstand_bzlib_private.h @@ -110,7 +113,8 @@ SRCS+= _${file} CLEANFILES+= _${file} _${file}: ${file} - sed "s|bzlib_private\.h|libstand_bzlib_private.h|" ${.ALLSRC} > ${.TARGET} + sed "s|bzlib_private\.h|libstand_bzlib_private.h|" \ + ${.ALLSRC} > ${.TARGET} .endfor CLEANFILES+= libstand_bzlib_private.h @@ -119,8 +123,8 @@ libstand_bzlib_private.h: bzlib_private.h ${.ALLSRC} > ${.TARGET} # decompression functionality from libz -.PATH: ${.CURDIR}/../libz -CFLAGS+=-DHAVE_MEMCPY -I${.CURDIR}/../libz +.PATH: ${LIBSTAND_SRC}/../libz +CFLAGS+=-DHAVE_MEMCPY -I${LIBSTAND_SRC}/../libz SRCS+= adler32.c crc32.c libstand_zutil.h libstand_gzguts.h .for file in infback.c inffast.c inflate.c inftrees.c zutil.c @@ -165,4 +169,3 @@ SRCS+= nandfs.c .endif .include <bsd.lib.mk> - diff --git a/lib/libthr/Makefile b/lib/libthr/Makefile index 0770d06..1717672 100644 --- a/lib/libthr/Makefile +++ b/lib/libthr/Makefile @@ -61,6 +61,8 @@ SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so SYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a .endif -.include <bsd.arch.inc.mk> +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif .include <bsd.lib.mk> diff --git a/lib/libthr/Makefile.amd64 b/lib/libthr/Makefile.amd64 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/libthr/Makefile.amd64 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/libthr/Makefile.i386 b/lib/libthr/Makefile.i386 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/libthr/Makefile.i386 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/libthr/tests/Makefile b/lib/libthr/tests/Makefile index 50f07f0..11cf0e7 100644 --- a/lib/libthr/tests/Makefile +++ b/lib/libthr/tests/Makefile @@ -25,7 +25,9 @@ NETBSD_ATF_TESTS_C+= sigmask_test NETBSD_ATF_TESTS_C+= sigsuspend_test NETBSD_ATF_TESTS_C+= siglongjmp_test NETBSD_ATF_TESTS_C+= sleep_test +.if ${MACHINE} != "arm64" # ARM64TODO: Missing makecontext NETBSD_ATF_TESTS_C+= swapcontext_test +.endif NETBSD_ATF_TESTS_SH= atexit_test NETBSD_ATF_TESTS_SH+= cancel_test diff --git a/lib/libthr/thread/thr_clean.c b/lib/libthr/thread/thr_clean.c index dc5b0c7..f200726 100644 --- a/lib/libthr/thread/thr_clean.c +++ b/lib/libthr/thread/thr_clean.c @@ -84,7 +84,7 @@ _pthread_cleanup_push(void (*routine) (void *), void *arg) curthread->unwind_disabled = 1; #endif if ((newbuf = (struct pthread_cleanup *) - malloc(sizeof(struct _pthread_cleanup_info))) != NULL) { + malloc(sizeof(struct pthread_cleanup))) != NULL) { newbuf->routine = routine; newbuf->routine_arg = arg; newbuf->onheap = 1; diff --git a/lib/libxo/Makefile b/lib/libxo/Makefile index cc0e72a..62fface 100644 --- a/lib/libxo/Makefile +++ b/lib/libxo/Makefile @@ -26,6 +26,7 @@ MAN+= xo_attr.3 \ xo_flush.3 \ xo_no_setlocale.3 \ xo_open_container.3 \ + xo_open_marker.3 \ xo_open_list.3 \ xo_parse_args.3 \ xo_set_allocator.3 \ @@ -33,6 +34,7 @@ MAN+= xo_attr.3 \ xo_set_info.3 \ xo_set_options.3 \ xo_set_style.3 \ + xo_set_version.3 \ xo_set_writer.3 MAN+= xo_format.5 diff --git a/lib/msun/Makefile b/lib/msun/Makefile index aee0f2d..5cb6292 100644 --- a/lib/msun/Makefile +++ b/lib/msun/Makefile @@ -221,6 +221,8 @@ MLINKS+=trunc.3 truncf.3 trunc.3 truncl.3 .include <src.opts.mk> -.include <bsd.arch.inc.mk> +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif .include <bsd.lib.mk> diff --git a/lib/msun/Makefile.amd64 b/lib/msun/Makefile.amd64 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/msun/Makefile.amd64 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/msun/Makefile.i386 b/lib/msun/Makefile.i386 deleted file mode 100644 index dd0f5b0..0000000 --- a/lib/msun/Makefile.i386 +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -.if ${MK_TESTS} != "no" -SUBDIR+= tests -.endif - diff --git a/lib/msun/man/j0.3 b/lib/msun/man/j0.3 index 7e1b790..587b72e 100644 --- a/lib/msun/man/j0.3 +++ b/lib/msun/man/j0.3 @@ -98,7 +98,7 @@ The functions .Fn y1 , and .Fn y1f -compute the linearly independent Bessel function of the second kind +compute the linearly independent Bessel function of the second kind of orders 0 and 1 for the positive .Em real value @@ -135,12 +135,12 @@ is \*(Pm0, these routines will generate a divide-by-zero exception and return -\*(If. If .Fa x -is a sufficiently small positive number, then +is a sufficiently small positive number, then .Fn y1 , .Fn y1f , .Fn yn , and -.Fn ynf +.Fn ynf will generate an overflow exception and return -\*(If. .Sh SEE ALSO .Xr math 3 diff --git a/lib/msun/man/lgamma.3 b/lib/msun/man/lgamma.3 index cb4b160..c8a22a2 100644 --- a/lib/msun/man/lgamma.3 +++ b/lib/msun/man/lgamma.3 @@ -124,7 +124,6 @@ are deprecated aliases for and .Fn lgammaf_r , respectively. - .Sh IDIOSYNCRASIES Do not use the expression .Dq Li signgam\(**exp(lgamma(x)) diff --git a/lib/msun/man/nextafter.3 b/lib/msun/man/nextafter.3 index c8c4aa3..01c472d 100644 --- a/lib/msun/man/nextafter.3 +++ b/lib/msun/man/nextafter.3 @@ -78,11 +78,11 @@ routines conform to They implement the Nextafter function recommended by .St -ieee754 , with the extension that -.Fn nextafter +0.0, -0.0 +.Fn nextafter "+0.0" "-0.0" returns .Li -0.0 , and -.Fn nextafter -0.0, +0.0 +.Fn nextafter "-0.0" "+0.0" returns .Li +0.0 . .Sh HISTORY diff --git a/lib/msun/tests/Makefile b/lib/msun/tests/Makefile index cb06868..0479cfb 100644 --- a/lib/msun/tests/Makefile +++ b/lib/msun/tests/Makefile @@ -6,13 +6,12 @@ TESTSRC= ${SRCTOP}/contrib/netbsd-tests/lib/libm TESTSDIR= ${TESTSBASE}/lib/msun -.if ${MACHINE} == "sparc" || ${MACHINE} == "i386" \ - || ${MACHINE} == "amd64" || ${MACHINE_CPU} == "arm" \ - || ${MACHINE} == "sparc64" +# All architectures on FreeBSD have fenv.h CFLAGS+= -DHAVE_FENV_H -.endif -.if ${MACHINE} == "amd64" || ${MACHINE} == "i386" +# Not sure why this isn't defined for all architectures, since most +# have long double. +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" CFLAGS+= -D__HAVE_LONG_DOUBLE .endif |