Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Dec 2016 02:11:30 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r309864 - vendor/libarchive/dist/tar/test
Message-ID:  <201612120211.uBC2BUJM063541@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Mon Dec 12 02:11:30 2016
New Revision: 309864
URL: https://svnweb.freebsd.org/changeset/base/309864

Log:
  Merge PR to address tar/test coverity issues
  
  Obtained from:	libarchive (fd0ea220635939ffe4b9ffb5cacaaa526a25b5ae)

Modified:
  vendor/libarchive/dist/tar/test/main.c
  vendor/libarchive/dist/tar/test/test_leading_slash.c
  vendor/libarchive/dist/tar/test/test_option_a.c
  vendor/libarchive/dist/tar/test/test_option_b.c
  vendor/libarchive/dist/tar/test/test_option_b64encode.c
  vendor/libarchive/dist/tar/test/test_option_gid_gname.c
  vendor/libarchive/dist/tar/test/test_option_grzip.c
  vendor/libarchive/dist/tar/test/test_option_j.c
  vendor/libarchive/dist/tar/test/test_option_lrzip.c
  vendor/libarchive/dist/tar/test/test_option_lz4.c
  vendor/libarchive/dist/tar/test/test_option_lzma.c
  vendor/libarchive/dist/tar/test/test_option_lzop.c
  vendor/libarchive/dist/tar/test/test_option_r.c
  vendor/libarchive/dist/tar/test/test_option_uid_uname.c
  vendor/libarchive/dist/tar/test/test_option_uuencode.c
  vendor/libarchive/dist/tar/test/test_option_xz.c
  vendor/libarchive/dist/tar/test/test_option_z.c
  vendor/libarchive/dist/tar/test/test_stdio.c
  vendor/libarchive/dist/tar/test/test_version.c

Modified: vendor/libarchive/dist/tar/test/main.c
==============================================================================
--- vendor/libarchive/dist/tar/test/main.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/main.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -1060,7 +1060,7 @@ assertion_file_contains_lines_any_order(
 	char **expected = NULL;
 	char *p, **actual = NULL;
 	char c;
-	int expected_failure = 0, actual_failure = 0;
+	int expected_failure = 0, actual_failure = 0, retval = 0;
 
 	assertion_count(file, line);
 
@@ -1081,8 +1081,7 @@ assertion_file_contains_lines_any_order(
 		if (expected == NULL) {
 			failure_start(pathname, line, "Can't allocate memory");
 			failure_finish(NULL);
-			free(expected);
-			return (0);
+			goto done;
 		}
 		for (i = 0; lines[i] != NULL; ++i) {
 			expected[i] = strdup(lines[i]);
@@ -1103,8 +1102,7 @@ assertion_file_contains_lines_any_order(
 		if (actual == NULL) {
 			failure_start(pathname, line, "Can't allocate memory");
 			failure_finish(NULL);
-			free(expected);
-			return (0);
+			goto done;
 		}
 		for (j = 0, p = buff; p < buff + buff_size;
 		    p += 1 + strlen(p)) {
@@ -1141,27 +1139,27 @@ assertion_file_contains_lines_any_order(
 			++actual_failure;
 	}
 	if (expected_failure == 0 && actual_failure == 0) {
-		free(buff);
-		free(expected);
-		free(actual);
-		return (1);
+		retval = 1;
+		goto done;
 	}
 	failure_start(file, line, "File doesn't match: %s", pathname);
 	for (i = 0; i < expected_count; ++i) {
-		if (expected[i] != NULL) {
+		if (expected[i] != NULL)
 			logprintf("  Expected but not present: %s\n", expected[i]);
-			free(expected[i]);
-		}
 	}
 	for (j = 0; j < actual_count; ++j) {
 		if (actual[j] != NULL)
 			logprintf("  Present but not expected: %s\n", actual[j]);
 	}
 	failure_finish(NULL);
+done:
+	free(actual);
 	free(buff);
+	for (i = 0; i < expected_count; ++i)
+		free(expected[i]);
 	free(expected);
-	free(actual);
-	return (0);
+
+	return (retval);
 }
 
 /* Verify that a text file does not contains the specified strings */
@@ -1590,7 +1588,7 @@ is_symlink(const char *file, int line,
 	 * really not much point in bothering with this. */
 	return (0);
 #else
-	char buff[300];
+	char buff[301];
 	struct stat st;
 	ssize_t linklen;
 	int r;
@@ -1607,7 +1605,7 @@ is_symlink(const char *file, int line,
 		return (0);
 	if (contents == NULL)
 		return (1);
-	linklen = readlink(pathname, buff, sizeof(buff));
+	linklen = readlink(pathname, buff, sizeof(buff) - 1);
 	if (linklen < 0) {
 		failure_start(file, line, "Can't read symlink %s", pathname);
 		failure_finish(NULL);
@@ -2324,7 +2322,7 @@ extract_reference_file(const char *name)
 	for (;;) {
 		if (fgets(buff, sizeof(buff), in) == NULL) {
 			/* TODO: This is a failure. */
-			return;
+			goto done;
 		}
 		if (memcmp(buff, "begin ", 6) == 0)
 			break;
@@ -2365,6 +2363,7 @@ extract_reference_file(const char *name)
 		}
 	}
 	fclose(out);
+done:
 	fclose(in);
 }
 
@@ -2958,8 +2957,8 @@ main(int argc, char **argv)
 		strftime(tmpdir_timestamp, sizeof(tmpdir_timestamp),
 		    "%Y-%m-%dT%H.%M.%S",
 		    localtime(&now));
-		sprintf(tmpdir, "%s/%s.%s-%03d", tmp, progname,
-		    tmpdir_timestamp, i);
+		snprintf(tmpdir, sizeof(tmpdir), "%s/%s.%s-%03d", tmp,
+		    progname, tmpdir_timestamp, i);
 		if (assertMakeDir(tmpdir,0755))
 			break;
 		if (i >= 999) {

Modified: vendor/libarchive/dist/tar/test/test_leading_slash.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_leading_slash.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_leading_slash.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -44,6 +44,7 @@ DEFINE_TEST(test_leading_slash)
 	if (assertFileExists("test.err")) {
 		errfile = slurpfile(&errfile_size, "test.err");
 		assert(strstr(errfile, expected_errmsg) != NULL);
+		free(errfile);
 	}
 }
 

Modified: vendor/libarchive/dist/tar/test/test_option_a.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_a.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_a.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -43,6 +43,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 2);
 	failure("The archive should be compressed");
 	assertEqualMem(p, "\x1f\x9d", 2);
+	free(p);
 
 	/* Test2: archive it with .taZ suffix. */
 	assertEqualInt(0,
@@ -53,6 +54,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 2);
 	failure("The archive should be compressed");
 	assertEqualMem(p, "\x1f\x9d", 2);
+	free(p);
 
 	/* Test3: archive it with .tar.Z.uu suffix. */
 	assertEqualInt(0,
@@ -63,6 +65,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 12);
 	failure("The archive should be uuencoded");
 	assertEqualMem(p, "begin 644 -\n", 12);
+	free(p);
 
 	/* Test4: archive it with .zip suffix. */
 	assertEqualInt(0,
@@ -73,6 +76,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 4);
 	failure("The archive should be zipped");
 	assertEqualMem(p, "\x50\x4b\x03\x04", 4);
+	free(p);
 
 	/* Test5: archive it with .tar.Z suffix and --uuencode option. */
 	assertEqualInt(0,
@@ -84,6 +88,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 2);
 	failure("The archive should be compressed, ignoring --uuencode option");
 	assertEqualMem(p, "\x1f\x9d", 2);
+	free(p);
 
 	/* Test6: archive it with .xxx suffix(unknown suffix) and
 	 * --uuencode option. */
@@ -96,6 +101,7 @@ DEFINE_TEST(test_option_a)
 	assert(s > 12);
 	failure("The archive should be uuencoded");
 	assertEqualMem(p, "begin 644 -\n", 12);
+	free(p);
 
 	/* Test7: archive it with .tar.Z suffix using a long-name option. */
 	assertEqualInt(0,
@@ -107,4 +113,5 @@ DEFINE_TEST(test_option_a)
 	assert(s > 2);
 	failure("The archive should be compressed");
 	assertEqualMem(p, "\x1f\x9d", 2);
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_b.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_b.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_b.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -78,4 +78,6 @@ DEFINE_TEST(test_option_b)
 	 * Note: It's not possible to verify at this level that blocks
 	 * are getting written with the
 	 */
+
+	free(testprog_ustar);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_b64encode.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_b64encode.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_b64encode.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -42,6 +42,7 @@ DEFINE_TEST(test_option_b64encode)
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "begin-base64 644", 16);
+	free(p);
 
 	/* Archive it with uuencode only. */
 	assertEqualInt(0,
@@ -51,4 +52,5 @@ DEFINE_TEST(test_option_b64encode)
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "begin-base64 644", 16);
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_gid_gname.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_gid_gname.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_gid_gname.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -53,6 +53,7 @@ DEFINE_TEST(test_option_gid_gname)
 	/* Should force gid and gname fields in ustar header. */
 	assertEqualMem(data + 116, "000021 \0", 8);
 	assertEqualMem(data + 297, "foofoofoo\0", 10);
+	free(data);
 
 	/* Again with just --gname */
 	failure("Error invoking %s c", testprog);
@@ -65,6 +66,8 @@ DEFINE_TEST(test_option_gid_gname)
 	/* Gid should be unchanged from original reference. */
 	assertEqualMem(data + 116, reference + 116, 8);
 	assertEqualMem(data + 297, "foofoofoo\0", 10);
+	free(data);
+	free(reference);
 
 	/* Again with --gid  and force gname to empty. */
 	failure("Error invoking %s c", testprog);
@@ -77,6 +80,7 @@ DEFINE_TEST(test_option_gid_gname)
 	assertEqualMem(data + 116, "000021 \0", 8);
 	/* Gname field in ustar header should be empty. */
 	assertEqualMem(data + 297, "\0", 1);
+	free(data);
 
 	/* TODO: It would be nice to verify that --gid= by itself
 	 * will look up the associated gname and use that, but

Modified: vendor/libarchive/dist/tar/test/test_option_grzip.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_grzip.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_grzip.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -45,8 +45,11 @@ DEFINE_TEST(test_option_grzip)
 	    testprog));
 	p = slurpfile(&s, "archive.err");
 	p[s] = '\0';
+	free(p);
+
 	/* Check that the archive file has an grzip signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "GRZipII\x00\x02\x04:)", 12);
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_j.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_j.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_j.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -42,15 +42,18 @@ DEFINE_TEST(test_option_j)
 	if (r != 0) {
 		if (!canBzip2()) {
 			skipping("bzip2 is not supported on this platform");
-			return;
+			goto done;
 		}
 		failure("-j option is broken");
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	assertEmptyFile("archive.err");
 	/* Check that the archive file has a bzip2 signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "BZh9", 4);
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_lrzip.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_lrzip.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_lrzip.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -45,8 +45,10 @@ DEFINE_TEST(test_option_lrzip)
 	    testprog));
 	p = slurpfile(&s, "archive.err");
 	p[s] = '\0';
+	free(p);
 	/* Check that the archive file has an lzma signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "LRZI\x00", 5);
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_lz4.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_lz4.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_lz4.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -43,7 +43,7 @@ DEFINE_TEST(test_option_lz4)
 		if (strstr(p, "Unsupported compression") != NULL) {
 			skipping("This version of bsdtar was compiled "
 			    "without lz4 support");
-			return;
+			goto done;
 		}
 		/* POSIX permits different handling of the spawnp
 		 * system call used to launch the subsidiary
@@ -52,7 +52,7 @@ DEFINE_TEST(test_option_lz4)
 		if (strstr(p, "Can't launch") != NULL && !canLz4()) {
 			skipping("This version of bsdtar uses an external lz4 program "
 			    "but no such program is available on this system.");
-			return;
+			goto done;
 		}
 		/* Some systems successfully spawn the new process,
 		 * but fail to exec a program within that process.
@@ -61,14 +61,18 @@ DEFINE_TEST(test_option_lz4)
 		if (strstr(p, "Can't write") != NULL && !canLz4()) {
 			skipping("This version of bsdtar uses an external lz4 program "
 			    "but no such program is available on this system.");
-			return;
+			goto done;
 		}
 		failure("--lz4 option is broken: %s", p);
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	/* Check that the archive file has an lz4 signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "\x04\x22\x4d\x18", 4);
+
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_lzma.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_lzma.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_lzma.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -48,10 +48,13 @@ DEFINE_TEST(test_option_lzma)
 		}
 		failure("--lzma option is broken");
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	/* Check that the archive file has an lzma signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "\x5d\00\00", 3);
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_lzop.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_lzop.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_lzop.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -42,14 +42,17 @@ DEFINE_TEST(test_option_lzop)
 	if (r != 0) {
 		if (!canLzop()) {
 			skipping("lzop is not supported on this platform");
-			return;
+			goto done;
 		}
 		failure("--lzop option is broken");
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	/* Check that the archive file has an lzma signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a", 9);
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_r.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_r.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_r.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -36,6 +36,10 @@ DEFINE_TEST(test_option_r)
 	size_t s, buff_size_rounded;
 	int r, i;
 
+	buff = NULL;
+	p0 = NULL;
+	p1 = NULL;
+
 	/* Create an archive with one file. */
 	assertMakeFile("f1", 0644, "abc");
 	r = systemf("%s cf archive.tar --format=ustar f1 >step1.out 2>step1.err", testprog);
@@ -47,11 +51,9 @@ DEFINE_TEST(test_option_r)
 	/* Do some basic validation of the constructed archive. */
 	p0 = slurpfile(&s, "archive.tar");
 	if (!assert(p0 != NULL))
-		return;
-	if (!assert(s >= 2048)) {
-		free(p0);
-		return;
-	}
+		goto done;
+	if (!assert(s >= 2048))
+		goto done;
 	assertEqualMem(p0 + 0, "f1", 3);
 	assertEqualMem(p0 + 512, "abc", 3);
 	assertEqualMem(p0 + 1024, "\0\0\0\0\0\0\0\0", 8);
@@ -60,10 +62,8 @@ DEFINE_TEST(test_option_r)
 	/* Edit that file with a lot more data and update the archive with a new copy. */
 	buff = malloc(buff_size);
 	assert(buff != NULL);
-	if (buff == NULL) {
-		free(p0);
-		return;
-	}
+	if (buff == NULL)
+		goto done;
 
 	for (i = 0; i < (int)buff_size; ++i)
 		buff[i] = "abcdefghijklmnopqrstuvwxyz"[rand() % 26];
@@ -77,10 +77,8 @@ DEFINE_TEST(test_option_r)
 
 	/* The constructed archive should just have the new entry appended. */
 	p1 = slurpfile(&s, "archive.tar");
-	if (!assert(p1 != NULL)) {
-		free(p0);
-		return;
-	}
+	if (!assert(p1 != NULL))
+		goto done;
 	buff_size_rounded = ((buff_size + 511) / 512) * 512;
 	assert(s >= 2560 + buff_size_rounded);
 	/* Verify first entry is unchanged. */
@@ -105,10 +103,8 @@ DEFINE_TEST(test_option_r)
 
 	/* Validate the constructed archive. */
 	p1 = slurpfile(&s, "archive.tar");
-	if (!assert(p1 != NULL)) {
-		free(p0);
-		return;
-	}
+	if (!assert(p1 != NULL))
+		goto done;
 	assert(s >= 3584 + buff_size_rounded);
 	/* Verify first two entries are unchanged. */
 	assertEqualMem(p0, p1, 1536 + buff_size_rounded);
@@ -118,7 +114,6 @@ DEFINE_TEST(test_option_r)
 	/* Verify end-of-archive marker. */
 	assertEqualMem(p1 + 2560 + buff_size_rounded, "\0\0\0\0\0\0\0\0", 8);
 	assertEqualMem(p1 + 3072 + buff_size_rounded, "\0\0\0\0\0\0\0\0", 8);
-	free(p0);
 	free(p1);
 
 	/* Unpack everything */
@@ -132,4 +127,7 @@ DEFINE_TEST(test_option_r)
 
 	/* Verify that the second copy of f1 overwrote the first. */
 	assertFileContents(buff, (int)strlen(buff), "f1");
+done:
+	free(buff);
+	free(p0);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_uid_uname.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_uid_uname.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_uid_uname.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -53,6 +53,7 @@ DEFINE_TEST(test_option_uid_uname)
 	/* Should force uid and uname fields in ustar header. */
 	assertEqualMem(data + 108, "000021 \0", 8);
 	assertEqualMem(data + 265, "foofoofoo\0", 10);
+	free(data);
 
 	/* Again with just --uid */
 	failure("Error invoking %s c", testprog);
@@ -65,6 +66,7 @@ DEFINE_TEST(test_option_uid_uname)
 	assertEqualMem(data + 108, "000021 \0", 8);
 	/* Uname field in ustar header should be empty. */
 	assertEqualMem(data + 265, "\0", 1);
+	free(data);
 
 	/* Again with just --uname */
 	failure("Error invoking %s c", testprog);
@@ -77,4 +79,7 @@ DEFINE_TEST(test_option_uid_uname)
 	/* Uid should be unchanged from original reference. */
 	assertEqualMem(data + 108, reference + 108, 8);
 	assertEqualMem(data + 265, "foofoofoo\0", 10);
+	free(data);
+
+	free(reference);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_uuencode.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_uuencode.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_uuencode.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -42,6 +42,7 @@ DEFINE_TEST(test_option_uuencode)
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "begin 644", 9);
+	free(p);
 
 	/* Archive it with uuencode only. */
 	assertEqualInt(0,
@@ -51,4 +52,5 @@ DEFINE_TEST(test_option_uuencode)
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "begin 644", 9);
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_xz.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_xz.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_xz.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -44,14 +44,17 @@ DEFINE_TEST(test_option_xz)
 		if (strstr(p, "Unsupported compression") != NULL) {
 			skipping("This version of bsdtar was compiled "
 			    "without xz support");
-			return;
+			goto done;
 		}
 		failure("--xz option is broken");
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	/* Check that the archive file has an xz signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 2);
 	assertEqualMem(p, "\xFD\x37\x7A\x58\x5A\x00", 6);
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_option_z.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_option_z.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_option_z.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -42,14 +42,17 @@ DEFINE_TEST(test_option_z)
 	if (r != 0) {
 		if (!canGzip()) {
 			skipping("gzip is not supported on this platform");
-			return;
+			goto done;
 		}
 		failure("-z option is broken");
 		assertEqualInt(r, 0);
-		return;
+		goto done;
 	}
+	free(p);
 	/* Check that the archive file has a gzip signature. */
 	p = slurpfile(&s, "archive.out");
 	assert(s > 4);
 	assertEqualMem(p, "\x1f\x8b\x08\x00", 4);
+done:
+	free(p);
 }

Modified: vendor/libarchive/dist/tar/test/test_stdio.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_stdio.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_stdio.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -116,6 +116,7 @@ DEFINE_TEST(test_stdio)
 	assertEqualInt((int)s, 3);
 	assertEqualMem(p, "abc", 3);
 	/* TODO: Verify xvf.err */
+	free(p);
 
 	/* 'xvf -' should generate list on stderr, empty stdout. */
 	r = systemf("%s xvf - < archive >xvf-.out 2>xvf-.err", testprog);

Modified: vendor/libarchive/dist/tar/test/test_version.c
==============================================================================
--- vendor/libarchive/dist/tar/test/test_version.c	Mon Dec 12 02:09:31 2016	(r309863)
+++ vendor/libarchive/dist/tar/test/test_version.c	Mon Dec 12 02:11:30 2016	(r309864)
@@ -53,7 +53,7 @@ DEFINE_TEST(test_version)
 	assert(s > 6);
 	failure("Version must start with 'bsdtar': ``%s''", p);
 	if (!assertEqualMem(q, "bsdtar ", 7))
-		return;
+		goto done;
 	q += 7; s -= 7;
 	/* Version number is a series of digits and periods. */
 	while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) {
@@ -98,5 +98,6 @@ DEFINE_TEST(test_version)
 	failure("Version output must end with \\n or \\r\\n");
 	if (*q == '\r') { ++q; --s; }
 	assertEqualMem(q, "\n", 1);
+done:
 	free(p);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612120211.uBC2BUJM063541>