[trunk] -> [testing] 'libarchive-3.6.1-2' add

master
artoo 2 months ago
parent 19798e0740
commit cadffa78a8
Signed by: artoo
GPG Key ID: 3292CD0BB0DB310B
  1. 35
      trunk/0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch
  2. 42
      trunk/0002-Validate-entry_bytes_remaining-in-pax_attribute.patch
  3. 19
      trunk/PKGBUILD
  4. 65
      trunk/keys/pgp/A5A45B12AD92D964B89EEE2DEC560C81CEC2276E.asc
  5. 35
      x86_64/testing/0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch
  6. 42
      x86_64/testing/0002-Validate-entry_bytes_remaining-in-pax_attribute.patch
  7. 52
      x86_64/testing/PKGBUILD
  8. 65
      x86_64/testing/keys/pgp/A5A45B12AD92D964B89EEE2DEC560C81CEC2276E.asc

@ -0,0 +1,35 @@
From bff38efe8c110469c5080d387bec62a6ca15b1a5 Mon Sep 17 00:00:00 2001
From: obiwac <obiwac@gmail.com>
Date: Fri, 22 Jul 2022 22:41:10 +0200
Subject: [PATCH] libarchive: Handle a `calloc` returning NULL (fixes #1754)
---
libarchive/archive_write.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c
index 66592e82..27626b54 100644
--- a/libarchive/archive_write.c
+++ b/libarchive/archive_write.c
@@ -201,6 +201,10 @@ __archive_write_allocate_filter(struct archive *_a)
struct archive_write_filter *f;
f = calloc(1, sizeof(*f));
+
+ if (f == NULL)
+ return (NULL);
+
f->archive = _a;
f->state = ARCHIVE_WRITE_FILTER_STATE_NEW;
if (a->filter_first == NULL)
@@ -548,6 +552,10 @@ archive_write_open2(struct archive *_a, void *client_data,
a->client_data = client_data;
client_filter = __archive_write_allocate_filter(_a);
+
+ if (client_filter == NULL)
+ return (ARCHIVE_FATAL);
+
client_filter->open = archive_write_client_open;
client_filter->write = archive_write_client_write;
client_filter->close = archive_write_client_close;

@ -0,0 +1,42 @@
From fc8c6d2786ecba731d77d33fe3b034f581fcbde3 Mon Sep 17 00:00:00 2001
From: Ben Wagner <bungeman@chromium.org>
Date: Tue, 19 Jul 2022 13:02:40 -0400
Subject: [PATCH] Validate entry_bytes_remaining in pax_attribute
The `size` attribute may contain a negative or too large value. Check
the range of the `entry_bytes_remaining` in `pax_attribute` the same way
as `header_common`. The test which is added passes both with and without
this change in a normal debug build. It is necessary to run with
`-fsanitize=undefined` to see that the undefined behavior is avoided.
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48467
---
libarchive/archive_read_support_format_tar.c | 15 ++++++
1 files changed, 15 insertions(+)
diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c
index bfdad7f8..e31f1cc4 100644
--- a/libarchive/archive_read_support_format_tar.c
+++ b/libarchive/archive_read_support_format_tar.c
@@ -2108,6 +2108,21 @@ pax_attribute(struct archive_read *a, struct tar *tar,
/* "size" is the size of the data in the entry. */
tar->entry_bytes_remaining
= tar_atol10(value, strlen(value));
+ if (tar->entry_bytes_remaining < 0) {
+ tar->entry_bytes_remaining = 0;
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_MISC,
+ "Tar size attribute is negative");
+ return (ARCHIVE_FATAL);
+ }
+ if (tar->entry_bytes_remaining == INT64_MAX) {
+ /* Note: tar_atol returns INT64_MAX on overflow */
+ tar->entry_bytes_remaining = 0;
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_MISC,
+ "Tar size attribute overflow");
+ return (ARCHIVE_FATAL);
+ }
/*
* The "size" pax header keyword always overrides the
* "size" field in the tar header.

@ -1,9 +1,9 @@
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Maintainer: artoo <artoo@artixlinux.org>
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
pkgver=3.6.1
pkgrel=1
pkgrel=2
pkgdesc='Multi-format archive and compression library'
arch=('x86_64')
url='https://libarchive.org/'
@ -12,9 +12,20 @@ depends=('acl' 'libacl.so' 'bzip2' 'expat' 'lz4' 'openssl' 'xz' 'zlib' 'zstd')
provides=('libarchive.so')
options=('debug')
validpgpkeys=('A5A45B12AD92D964B89EEE2DEC560C81CEC2276E') # Martin Matuska <mm@FreeBSD.org>
source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc})
source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc}
'0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch'
'0002-Validate-entry_bytes_remaining-in-pax_attribute.patch')
sha256sums=('5a411aceb978f43e626f0c2d1812ddd8807b645ed892453acabd532376c148e6'
'SKIP')
'SKIP'
'bc52b2b2b99915894b436c97872d5d50e94c8c7483865a028fad9a710c837fa7'
'38c8d9b00f3259558e67e6fdf790ccbf8ecbba2de101476c2416d87b1679bcb9')
prepare() {
cd "${pkgname}-${pkgver}"
patch -Np1 < ../0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch
patch -Np1 < ../0002-Validate-entry_bytes_remaining-in-pax_attribute.patch
}
build() {
cd "${pkgname}-${pkgver}"

@ -0,0 +1,65 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
SnhsHUNk+W65LKZ22ZjsJek8cQ==
=BSXs
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1,35 @@
From bff38efe8c110469c5080d387bec62a6ca15b1a5 Mon Sep 17 00:00:00 2001
From: obiwac <obiwac@gmail.com>
Date: Fri, 22 Jul 2022 22:41:10 +0200
Subject: [PATCH] libarchive: Handle a `calloc` returning NULL (fixes #1754)
---
libarchive/archive_write.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c
index 66592e82..27626b54 100644
--- a/libarchive/archive_write.c
+++ b/libarchive/archive_write.c
@@ -201,6 +201,10 @@ __archive_write_allocate_filter(struct archive *_a)
struct archive_write_filter *f;
f = calloc(1, sizeof(*f));
+
+ if (f == NULL)
+ return (NULL);
+
f->archive = _a;
f->state = ARCHIVE_WRITE_FILTER_STATE_NEW;
if (a->filter_first == NULL)
@@ -548,6 +552,10 @@ archive_write_open2(struct archive *_a, void *client_data,
a->client_data = client_data;
client_filter = __archive_write_allocate_filter(_a);
+
+ if (client_filter == NULL)
+ return (ARCHIVE_FATAL);
+
client_filter->open = archive_write_client_open;
client_filter->write = archive_write_client_write;
client_filter->close = archive_write_client_close;

@ -0,0 +1,42 @@
From fc8c6d2786ecba731d77d33fe3b034f581fcbde3 Mon Sep 17 00:00:00 2001
From: Ben Wagner <bungeman@chromium.org>
Date: Tue, 19 Jul 2022 13:02:40 -0400
Subject: [PATCH] Validate entry_bytes_remaining in pax_attribute
The `size` attribute may contain a negative or too large value. Check
the range of the `entry_bytes_remaining` in `pax_attribute` the same way
as `header_common`. The test which is added passes both with and without
this change in a normal debug build. It is necessary to run with
`-fsanitize=undefined` to see that the undefined behavior is avoided.
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48467
---
libarchive/archive_read_support_format_tar.c | 15 ++++++
1 files changed, 15 insertions(+)
diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c
index bfdad7f8..e31f1cc4 100644
--- a/libarchive/archive_read_support_format_tar.c
+++ b/libarchive/archive_read_support_format_tar.c
@@ -2108,6 +2108,21 @@ pax_attribute(struct archive_read *a, struct tar *tar,
/* "size" is the size of the data in the entry. */
tar->entry_bytes_remaining
= tar_atol10(value, strlen(value));
+ if (tar->entry_bytes_remaining < 0) {
+ tar->entry_bytes_remaining = 0;
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_MISC,
+ "Tar size attribute is negative");
+ return (ARCHIVE_FATAL);
+ }
+ if (tar->entry_bytes_remaining == INT64_MAX) {
+ /* Note: tar_atol returns INT64_MAX on overflow */
+ tar->entry_bytes_remaining = 0;
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_MISC,
+ "Tar size attribute overflow");
+ return (ARCHIVE_FATAL);
+ }
/*
* The "size" pax header keyword always overrides the
* "size" field in the tar header.

@ -0,0 +1,52 @@
# Maintainer: artoo <artoo@artixlinux.org>
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
pkgver=3.6.1
pkgrel=2
pkgdesc='Multi-format archive and compression library'
arch=('x86_64')
url='https://libarchive.org/'
license=('BSD')
depends=('acl' 'libacl.so' 'bzip2' 'expat' 'lz4' 'openssl' 'xz' 'zlib' 'zstd')
provides=('libarchive.so')
options=('debug')
validpgpkeys=('A5A45B12AD92D964B89EEE2DEC560C81CEC2276E') # Martin Matuska <mm@FreeBSD.org>
source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc}
'0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch'
'0002-Validate-entry_bytes_remaining-in-pax_attribute.patch')
sha256sums=('5a411aceb978f43e626f0c2d1812ddd8807b645ed892453acabd532376c148e6'
'SKIP'
'bc52b2b2b99915894b436c97872d5d50e94c8c7483865a028fad9a710c837fa7'
'38c8d9b00f3259558e67e6fdf790ccbf8ecbba2de101476c2416d87b1679bcb9')
prepare() {
cd "${pkgname}-${pkgver}"
patch -Np1 < ../0001-libarchive-Handle-a-calloc-returning-NULL-fixes-1754.patch
patch -Np1 < ../0002-Validate-entry_bytes_remaining-in-pax_attribute.patch
}
build() {
cd "${pkgname}-${pkgver}"
./configure \
--prefix=/usr \
--without-xml2 \
--without-nettle \
--disable-static
make
}
check() {
cd "${pkgname}-${pkgver}"
make check
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="$pkgdir" install
install -Dm0644 COPYING "$pkgdir/usr/share/licenses/libarchive/COPYING"
}

@ -0,0 +1,65 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
SnhsHUNk+W65LKZ22ZjsJek8cQ==
=BSXs
-----END PGP PUBLIC KEY BLOCK-----
Loading…
Cancel
Save