Date: Sat, 7 Jan 2017 09:18:11 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r311612 - stable/11/contrib/netbsd-tests/lib/libc/string Message-ID: <201701070918.v079IBeA095061@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Sat Jan 7 09:18:11 2017 New Revision: 311612 URL: https://svnweb.freebsd.org/changeset/base/311612 Log: MFC r311249: {strchr,strlen}_basic: don't leak the dlopen'ed handle; close after use CID: 978299, 978300 Modified: stable/11/contrib/netbsd-tests/lib/libc/string/t_strchr.c stable/11/contrib/netbsd-tests/lib/libc/string/t_strlen.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/netbsd-tests/lib/libc/string/t_strchr.c ============================================================================== --- stable/11/contrib/netbsd-tests/lib/libc/string/t_strchr.c Sat Jan 7 09:17:45 2017 (r311611) +++ stable/11/contrib/netbsd-tests/lib/libc/string/t_strchr.c Sat Jan 7 09:18:11 2017 (r311612) @@ -58,6 +58,9 @@ ATF_TC_HEAD(strchr_basic, tc) ATF_TC_BODY(strchr_basic, tc) { +#ifdef __FreeBSD__ + void *dl_handle; +#endif unsigned int t, a; char *off; char buf[32]; @@ -245,8 +248,12 @@ ATF_TC_BODY(strchr_basic, tc) "abcdefgh/abcdefgh/", }; - +#ifdef __FreeBSD__ + dl_handle = dlopen(NULL, RTLD_LAZY); + strchr_fn = dlsym(dl_handle, "test_strlen"); +#else strchr_fn = dlsym(dlopen(0, RTLD_LAZY), "test_strchr"); +#endif if (!strchr_fn) strchr_fn = strchr; @@ -281,6 +288,9 @@ ATF_TC_BODY(strchr_basic, tc) verify_strchr(buf + a, 0xff, t, a); } } +#ifdef __FreeBSD__ + (void)dlclose(dl_handle); +#endif } ATF_TP_ADD_TCS(tp) Modified: stable/11/contrib/netbsd-tests/lib/libc/string/t_strlen.c ============================================================================== --- stable/11/contrib/netbsd-tests/lib/libc/string/t_strlen.c Sat Jan 7 09:17:45 2017 (r311611) +++ stable/11/contrib/netbsd-tests/lib/libc/string/t_strlen.c Sat Jan 7 09:18:11 2017 (r311612) @@ -40,6 +40,9 @@ ATF_TC_HEAD(strlen_basic, tc) ATF_TC_BODY(strlen_basic, tc) { +#ifdef __FreeBSD__ + void *dl_handle; +#endif /* try to trick the compiler */ size_t (*strlen_fn)(const char *); @@ -107,7 +110,12 @@ ATF_TC_BODY(strlen_basic, tc) * During testing it is useful have the rest of the program * use a known good version! */ +#ifdef __FreeBSD__ + dl_handle = dlopen(NULL, RTLD_LAZY); + strlen_fn = dlsym(dl_handle, "test_strlen"); +#else strlen_fn = dlsym(dlopen(NULL, RTLD_LAZY), "test_strlen"); +#endif if (!strlen_fn) strlen_fn = strlen; @@ -134,6 +142,9 @@ ATF_TC_BODY(strlen_basic, tc) } } } +#ifdef __FreeBSD__ + (void)dlclose(dl_handle); +#endif } ATF_TC(strlen_huge);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701070918.v079IBeA095061>