]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-sigpad.patch
- compress debuginfo sections with zlib (reduce /usr/lib/debug size).
[packages/rpm.git] / rpm-sigpad.patch
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.039287 seconds and 3 git commands to generate.