{strchr,strlen}_basic: don't leak the dlopen'ed handle; close after use
MFC after: 3 days Reported by: Coverity CID: 978299, 978300
This commit is contained in:
parent
5d37d9cc25
commit
83e8b13f15
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=311249
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user