]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-sigpad.patch
- compress debuginfo sections with zlib (reduce /usr/lib/debug size).
[packages/rpm.git] / rpm-sigpad.patch
CommitLineData
99996533
ER
1 - jbj: reserve ~1K in RPMSIGTAG_PADDING for now.
2 - jbj: add RPMSIGTAG_PADDING to force metadata header alignment in file.
3--- rpm-4.5/build/pack.c 2007-12-17 00:28:09.000000000 +0200
4+++ rpm-4.5-sigpad/build/pack.c 2009-06-08 12:29:50.225343621 +0300
5@@ -702,6 +702,22 @@
6 goto exit;
7 }
8
9+ /* Pad the signature header to put the metadata header at known offset. */
10+ { size_t slen = headerSizeof(sig, HEADER_MAGIC_YES);
11+ void * uh = headerUnload(sig);
12+ static const size_t align = 1024;
13+ size_t nb = align - 96 - 16 - 8;
14+ unsigned char * b;
15+
16+ uh = _free(uh);
17+assert(slen < nb);
18+ nb -= slen;
19+ b = memset(alloca(nb), 0, nb);
20+ (void) headerAddEntry(sig, RPMSIGTAG_PADDING, RPM_BIN_TYPE, b, nb);
21+ sig = headerReload(sig, RPMTAG_HEADERSIGNATURES);
22+assert(sig != NULL);
23+ }
24+
25 /* Open the output file */
26 fd = Fopen(fileName, "w");
27 if (fd == NULL || Ferror(fd)) {
28--- rpm-4.5/lib/rpmlib.h 2008-06-10 02:19:16.000000000 +0300
29+++ rpm-4.5-sigpad/lib/rpmlib.h 2009-06-08 12:29:50.225343621 +0300
30@@ -1058,7 +1058,8 @@
31 RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2, /*!< internal Broken SHA1, take 2. */
32 RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER, /*!< internal sha1 header digest. */
33 RPMSIGTAG_DSA = RPMTAG_DSAHEADER, /*!< internal DSA header signature. */
34- RPMSIGTAG_RSA = RPMTAG_RSAHEADER /*!< internal RSA header signature. */
35+ RPMSIGTAG_RSA = RPMTAG_RSAHEADER, /*!< internal RSA header signature. */
36+ RPMSIGTAG_PADDING = 0x3fffffff /*!< signature header padding */
37 };
38
39 /** \ingroup signature
This page took 0.038223 seconds and 4 git commands to generate.