diff options
author | ngie <ngie@FreeBSD.org> | 2016-05-04 00:30:36 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2016-05-04 00:30:36 +0000 |
commit | 544322815d0c34f76ef163914c5abeb7a04058ba (patch) | |
tree | 1974b320dbd35e8e12bc6ba63f95c89c15cf305e /lib | |
parent | e47fda35686eefd0d999881cb8255c6bc4092112 (diff) | |
download | FreeBSD-src-544322815d0c34f76ef163914c5abeb7a04058ba.zip FreeBSD-src-544322815d0c34f76ef163914c5abeb7a04058ba.tar.gz |
MFC r298311,r298312:
r298311:
Make sure fmemopen succeeds in :test_append_binary_pos before calling ftell
on the FILE object
This fixes potential null pointer dereferences on failure
CID: 1254952
r298312:
Fix double fclose of `fp1` when freopen fails
freopen handles closing file descriptors on error, with the exception of
fdopen'ed descriptors, so closing an already fclose'd file descriptor is
incorrect
CID: 1338525
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/tests/stdio/fmemopen2_test.c | 2 | ||||
-rw-r--r-- | lib/libc/tests/stdio/freopen_test.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/libc/tests/stdio/fmemopen2_test.c b/lib/libc/tests/stdio/fmemopen2_test.c index 62831fb..6b6392d 100644 --- a/lib/libc/tests/stdio/fmemopen2_test.c +++ b/lib/libc/tests/stdio/fmemopen2_test.c @@ -249,12 +249,14 @@ ATF_TC_BODY(test_append_binary_pos, tc) FILE *fp; fp = fmemopen(NULL, 16, "ab+"); + ATF_REQUIRE(fp != NULL); ATF_REQUIRE(ftell(fp) == 0L); fclose(fp); /* Make sure that a pre-allocated buffer behaves correctly. */ char buf[] = "Hello"; fp = fmemopen(buf, sizeof(buf), "ab+"); + ATF_REQUIRE(fp != NULL); ATF_REQUIRE(ftell(fp) == strlen(buf)); fclose(fp); } diff --git a/lib/libc/tests/stdio/freopen_test.c b/lib/libc/tests/stdio/freopen_test.c index 1719927..8ca4719 100644 --- a/lib/libc/tests/stdio/freopen_test.c +++ b/lib/libc/tests/stdio/freopen_test.c @@ -48,7 +48,6 @@ runtest(const char *fname1, const char *mode1, const char *fname2, "fopen(\"%s\", \"%s\") failed; errno=%d", fname1, mode1, errno); fp2 = freopen(fname2, mode2, fp1); if (fp2 == NULL) { - fclose(fp1); ATF_REQUIRE_MSG(success == false, "freopen(\"%s\", \"%s\", fopen(\"%s\", \"%s\")) succeeded " "unexpectedly", fname2_print, mode2, fname1, mode1); |