Skip site navigation (1)Skip section navigation (2)
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>