Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Remove usage of deprecated libarchive function
Baptiste Daroussin committed 13 years ago
commit c8d04657174f199254bb71d3f475a20aadf9472b
parent 94c4931
7 files changed +41 -21
modified libpkg/packing.c
@@ -69,8 +69,8 @@ packing_init(struct packing **pack, const char *path, pkg_formats format)
		archive_write_set_format_pax_restricted((*pack)->awrite);
		ext = packing_set_format((*pack)->awrite, format);
		if (ext == NULL) {
-
			archive_read_finish((*pack)->aread);
-
			archive_write_finish((*pack)->awrite);
+
			archive_read_free((*pack)->aread);
+
			archive_write_free((*pack)->awrite);
			*pack = NULL;
			return EPKG_FATAL; /* error set by _set_format() */
		}
@@ -81,8 +81,8 @@ packing_init(struct packing **pack, const char *path, pkg_formats format)
		    (*pack)->awrite, archive_path) != ARCHIVE_OK) {
			pkg_emit_errno("archive_write_open_filename",
			    archive_path);
-
			archive_read_finish((*pack)->aread);
-
			archive_write_finish((*pack)->awrite);
+
			archive_read_free((*pack)->aread);
+
			archive_write_free((*pack)->awrite);
			*pack = NULL;
			return EPKG_FATAL;
		}
@@ -278,10 +278,10 @@ packing_finish(struct packing *pack)
{
	assert(pack != NULL);

-
	archive_read_finish(pack->aread);
+
	archive_read_free(pack->aread);

	archive_write_close(pack->awrite);
-
	archive_write_finish(pack->awrite);
+
	archive_write_free(pack->awrite);

	free(pack);

@@ -295,22 +295,22 @@ packing_set_format(struct archive *a, pkg_formats format)

	switch (format) {
	case TXZ:
-
		if (archive_write_set_compression_xz(a) == ARCHIVE_OK)
+
		if (archive_write_add_filter_xz(a) == ARCHIVE_OK)
			return ("txz");
		else
			pkg_emit_error(notsupp_fmt, "xz", "bzip2");
	case TBZ:
-
		if (archive_write_set_compression_bzip2(a) == ARCHIVE_OK)
+
		if (archive_write_add_filter_bzip2(a) == ARCHIVE_OK)
			return ("tbz");
		else
			pkg_emit_error(notsupp_fmt, "bzip2", "gzip");
	case TGZ:
-
		if (archive_write_set_compression_gzip(a) == ARCHIVE_OK)
+
		if (archive_write_add_filter_gzip(a) == ARCHIVE_OK)
			return ("tgz");
		else
			pkg_emit_error(notsupp_fmt, "gzip", "plain tar");
	case TAR:
-
		archive_write_set_compression_none(a);
+
		archive_write_add_filter_none(a);
		return ("tar");
	}
	return (NULL);
modified libpkg/pkg.c
@@ -942,7 +942,7 @@ pkg_open(struct pkg **pkg_p, const char *path)
	if (ret != EPKG_OK && ret != EPKG_END)
		return (EPKG_FATAL);

-
	archive_read_finish(a);
+
	archive_read_free(a);

	return (EPKG_OK);
}
@@ -973,7 +973,7 @@ pkg_open2(struct pkg **pkg_p, struct archive **a, struct archive_entry **ae, con
	manifest = sbuf_new_auto();

	*a = archive_read_new();
-
	archive_read_support_compression_all(*a);
+
	archive_read_support_filter_all(*a);
	archive_read_support_format_tar(*a);

	if (archive_read_open_filename(*a, path, 4096) != ARCHIVE_OK) {
@@ -1048,7 +1048,7 @@ pkg_open2(struct pkg **pkg_p, struct archive **a, struct archive_entry **ae, con

	if (retcode != EPKG_OK && retcode != EPKG_END) {
		if (*a != NULL)
-
			archive_read_finish(*a);
+
			archive_read_free(*a);
		*a = NULL;
		*ae = NULL;
	}
modified libpkg/pkg_add.c
@@ -114,7 +114,7 @@ do_extract_mtree(char *mtree, const char *prefix)
		return EPKG_OK;

	a = archive_read_new();
-
	archive_read_support_compression_none(a);
+
	archive_read_support_filter_none(a);
	archive_read_support_format_mtree(a);

	if (archive_read_open_memory(a, mtree, strlen(mtree)) != ARCHIVE_OK) {
@@ -143,7 +143,7 @@ do_extract_mtree(char *mtree, const char *prefix)

cleanup:
	if (a != NULL)
-
		archive_read_finish(a);
+
		archive_read_free(a);

	return (retcode);
}
@@ -321,7 +321,7 @@ pkg_add(struct pkgdb *db, const char *path, unsigned flags)

	cleanup:
	if (a != NULL)
-
		archive_read_finish(a);
+
		archive_read_free(a);

	pkg_free(pkg);

modified libpkg/pkg_repo.c
@@ -607,12 +607,12 @@ pack_extract(const char *pack, const char *dbname, const char *dbpath)
		return;

	a = archive_read_new();
-
	archive_read_support_compression_all(a);
+
	archive_read_support_filter_all(a);
	archive_read_support_format_tar(a);
	if (archive_read_open_filename(a, pack, 4096) != ARCHIVE_OK) {
		/* if we can't unpack it it won't be useful for us */
		unlink(pack);
-
		archive_read_finish(a);
+
		archive_read_free(a);
		return;
	}

@@ -624,7 +624,7 @@ pack_extract(const char *pack, const char *dbname, const char *dbpath)
		}
	}

-
	archive_read_finish(a);
+
	archive_read_free(a);


}
modified libpkg/private/pkg.h
@@ -46,6 +46,17 @@
#define PKG_NUM_FIELDS 18
#define PKG_NUM_SCRIPTS 8

+
#if ARCHIVE_VERSION_NUMBER < 3000002
+
#define archive_read_free(a) archive_read_finish(a)
+
#define archive_write_free(a) archive_write_finish(a)
+
#define archive_write_add_filter_xz(a) archive_write_set_compression_xz(a)
+
#define archive_write_add_filter_bzip2(a) archive_write_set_compression_bzip2(a)
+
#define archive_write_add_filter_gzip(a) archive_write_set_compression_gzip(a)
+
#define archive_write_add_filter_none(a) archive_write_set_compression_none(a)
+
#define archive_read_support_filter_all(a) archive_read_support_compression_all(a)
+
#define archive_read_support_filter_none(a) archive_read_support_compression_none(a)
+
#endif
+

#define EXTRACT_ARCHIVE_FLAGS  (ARCHIVE_EXTRACT_OWNER |ARCHIVE_EXTRACT_PERM | \
		ARCHIVE_EXTRACT_TIME | ARCHIVE_EXTRACT_ACL | \
		ARCHIVE_EXTRACT_FFLAGS|ARCHIVE_EXTRACT_XATTR)
modified libpkg/update.c
@@ -179,7 +179,7 @@ pkg_update(const char *name, const char *packagesite, bool force)
	}

	a = archive_read_new();
-
	archive_read_support_compression_all(a);
+
	archive_read_support_filter_all(a);
	archive_read_support_format_tar(a);

	archive_read_open_filename(a, tmp, 4096);
@@ -311,7 +311,7 @@ pkg_update(const char *name, const char *packagesite, bool force)

	cleanup:
	if (a != NULL)
-
		archive_read_finish(a);
+
		archive_read_free(a);

	(void)unlink(tmp);

modified pkg/audit.c
@@ -107,7 +107,12 @@ fetch_and_extract(const char *src, const char *dest)
	}

	a = archive_read_new();
+
#if ARCHIVE_VERSION_NUMBER < 3000002
	archive_read_support_compression_all(a);
+
#else
+
	archive_read_support_filter_all(a);
+
#endif
+

	archive_read_support_format_tar(a);

	if (archive_read_open_filename(a, tmp, 4096) != ARCHIVE_OK) {
@@ -136,7 +141,11 @@ fetch_and_extract(const char *src, const char *dest)
	cleanup:
	unlink(tmp);
	if (a != NULL)
+
#if ARCHIVE_VERSION_NUMBER < 3000002
+
		archive_read_finish(a);
+
#else
		archive_read_finish(a);
+
#endif
	if (fd > 0)
		close(fd);