mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 21:23:51 -09:00
In Buildroot there are multiple way to apply patches on a package [1]
- Adding `.patch` file in the package directory.
- Define `<pkg>_PATCH` variable with the location of the patch tar.gz.
It used to download Debian patches tarball.
- Implement custom patching logic with `PRE`/`POST` patches hooks.
To make the CycloneDX SBOM generation not dependant on downloading the
packages, the two last options have the downside of not appearing on the
generated SBOM.
The unzip package is downloading a tarball from the Debian mirror with
the `<pkg>_PATCH` method [2].
To improve the tracking of the patched vulnerabilities for the unzip
package this commit import the patches previously downloaded with the
`_PATCH` variable in the Buildroot tree.
This allows to add the `CVE:` trailer [3] on the patches that fix
vulnerabilities to better track which patch is fixing the vulnerability.
[1] https://buildroot.org/downloads/manual/manual.html#patch-policy
[2] https://snapshot.debian.org/archive/debian/20250311T215724Z/pool/main/u/unzip/unzip_6.0-29.debian.tar.xz
[3] 1167d0ff3d docs/manual: mention CVE trailer
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
From: "Steven M. Schweda" <sms@antinode.info>
|
|
Subject: Do not ignore extra fields containing Unix Timestamps
|
|
Bug-Debian: https://bugs.debian.org/842993
|
|
X-Debian-version: 6.0-21
|
|
|
|
Upstream: https://sources.debian.org/src/unzip/6.0-29/debian/patches/17-restore-unix-timestamps-accurately.patch
|
|
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
|
|
--- a/process.c
|
|
+++ b/process.c
|
|
@@ -2914,10 +2914,13 @@
|
|
break;
|
|
|
|
case EF_IZUNIX2:
|
|
- if (have_new_type_eb == 0) {
|
|
- flags &= ~0x0ff; /* ignore any previous IZUNIX field */
|
|
+ if (have_new_type_eb == 0) { /* (< 1) */
|
|
have_new_type_eb = 1;
|
|
}
|
|
+ if (have_new_type_eb <= 1) {
|
|
+ /* Ignore any prior (EF_IZUNIX/EF_PKUNIX) UID/GID. */
|
|
+ flags &= 0x0ff;
|
|
+ }
|
|
#ifdef IZ_HAVE_UXUIDGID
|
|
if (have_new_type_eb > 1)
|
|
break; /* IZUNIX3 overrides IZUNIX2 e.f. block ! */
|
|
@@ -2933,6 +2936,8 @@
|
|
/* new 3rd generation Unix ef */
|
|
have_new_type_eb = 2;
|
|
|
|
+ /* Ignore any prior EF_IZUNIX/EF_PKUNIX/EF_IZUNIX2 UID/GID. */
|
|
+ flags &= 0x0ff;
|
|
/*
|
|
Version 1 byte version of this extra field, currently 1
|
|
UIDSize 1 byte Size of UID field
|
|
@@ -2953,8 +2958,6 @@
|
|
uid_size = *((EB_HEADSIZE + 1) + ef_buf);
|
|
gid_size = *((EB_HEADSIZE + uid_size + 2) + ef_buf);
|
|
|
|
- flags &= ~0x0ff; /* ignore any previous UNIX field */
|
|
-
|
|
if ( read_ux3_value((EB_HEADSIZE + 2) + ef_buf,
|
|
uid_size, &z_uidgid[0])
|
|
&&
|