summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2016-02-23 11:28:21 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-09 17:00:27 +0000
commit007c284cb83cf5d98f3e4f605244ca6f1d46caea (patch)
tree32efe1a38e908bdc64ac59cad5f7b5e6b2d99ecf /meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
parenta27ca6da59e6939a5bbab641236f7f792c03694f (diff)
downloadpoky-007c284cb83cf5d98f3e4f605244ca6f1d46caea.tar.gz
rpm: Uprev to rpm-5.4.16 (pre) and rpm-5.4+cvs to current CVS head
meta/lib/oe/package_manager.py was also updated. This ensures that any diagnostic messages are ignored from the output of rpmresolve. The patches have been split into bug fixes (things that belong upstream) and local changes that are OE specific. The following patches are obsolete and have been removed: rpm-remove-sykcparse-decl.patch fstack-protector-configure-check.patch rpm-disable-Wno-override-init.patch rpm-lua-fix-print.patch rpm-rpmpgp-fix.patch verify-fix-broken-logic-for-ghost-avoidance-Mark-Hat.patch (From OE-Core rev: ee97e53fcceabc6ef4ddc68f38c5fa0e05c5d9a8) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm/debugedit-segv.patch')
-rw-r--r--meta/recipes-devtools/rpm/rpm/debugedit-segv.patch46
1 files changed, 24 insertions, 22 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch b/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
index beef5edd9d..585cf12fd8 100644
--- a/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
+++ b/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
@@ -15,34 +15,36 @@ Upstream-Status: Pending
15 15
16Signed-off-by: Mark Hatle <mark.hatle@windriver.com> 16Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
17 17
18Index: rpm-5.4.14/tools/debugedit.c 18Index: rpm/tools/debugedit.c
19=================================================================== 19===================================================================
20--- rpm-5.4.14.orig/tools/debugedit.c 20--- rpm.orig/tools/debugedit.c
21+++ rpm-5.4.14/tools/debugedit.c 21+++ rpm/tools/debugedit.c
22@@ -1445,21 +1445,24 @@ handle_build_id (DSO *dso, Elf_Data *bui 22@@ -1403,7 +1403,8 @@ static inline void process (hashFunction
23 auto inline void process (const void *data, size_t size) 23 const void *data, size_t size)
24 { 24 {
25 memchunk chunk = { .data = (void *) data, .size = size }; 25 memchunk chunk = { .data = (void *) data, .size = size };
26- hashFunctionContextUpdateMC (&ctx, &chunk); 26- hashFunctionContextUpdateMC (ctx, &chunk);
27+ if (data != NULL && size != 0) 27+ if (data != NULL && size != 0)
28+ hashFunctionContextUpdateMC (&ctx, &chunk); 28+ hashFunctionContextUpdateMC (ctx, &chunk);
29 } 29 }
30 union 30
31 { 31 /* Compute a fresh build ID bit-string from the editted file contents. */
32@@ -1456,14 +1457,16 @@ handle_build_id (DSO *dso, Elf_Data *bui
32 GElf_Ehdr ehdr; 33 GElf_Ehdr ehdr;
33 GElf_Phdr phdr; 34 GElf_Phdr phdr;
34 GElf_Shdr shdr; 35 GElf_Shdr shdr;
35- } u; 36- } u;
36- Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u }; 37- Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u };
37+ } u1, u2; 38-
38+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
39+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
40
41- x.d_type = ELF_T_EHDR; 39- x.d_type = ELF_T_EHDR;
42- x.d_size = sizeof u.ehdr; 40- x.d_size = sizeof u.ehdr;
43- u.ehdr = dso->ehdr; 41- u.ehdr = dso->ehdr;
44- u.ehdr.e_phoff = u.ehdr.e_shoff = 0; 42- u.ehdr.e_phoff = u.ehdr.e_shoff = 0;
45- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) 43- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL)
44+ } u1, u2;
45+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
46+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
47+
46+ src.d_type = ELF_T_EHDR; 48+ src.d_type = ELF_T_EHDR;
47+ src.d_size = sizeof u1.ehdr; 49+ src.d_size = sizeof u1.ehdr;
48+ dest.d_size = sizeof u2.ehdr; 50+ dest.d_size = sizeof u2.ehdr;
@@ -52,7 +54,7 @@ Index: rpm-5.4.14/tools/debugedit.c
52 { 54 {
53 bad: 55 bad:
54 fprintf (stderr, "Failed to compute header checksum: %s\n", 56 fprintf (stderr, "Failed to compute header checksum: %s\n",
55@@ -1467,29 +1470,31 @@ handle_build_id (DSO *dso, Elf_Data *bui 57@@ -1471,29 +1474,31 @@ handle_build_id (DSO *dso, Elf_Data *bui
56 exit (1); 58 exit (1);
57 } 59 }
58 60
@@ -69,8 +71,8 @@ Index: rpm-5.4.14/tools/debugedit.c
69- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) 71- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL)
70+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL) 72+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL)
71 goto bad; 73 goto bad;
72- process (x.d_buf, x.d_size); 74- process (&ctx, x.d_buf, x.d_size);
73+ process (dest.d_buf, dest.d_size); 75+ process (&ctx, dest.d_buf, dest.d_size);
74 } 76 }
75 77
76- x.d_type = ELF_T_SHDR; 78- x.d_type = ELF_T_SHDR;
@@ -88,8 +90,8 @@ Index: rpm-5.4.14/tools/debugedit.c
88+ u1.shdr.sh_offset = 0; 90+ u1.shdr.sh_offset = 0;
89+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL) 91+ if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL)
90 goto bad; 92 goto bad;
91- process (x.d_buf, x.d_size); 93- process (&ctx, x.d_buf, x.d_size);
92+ process (dest.d_buf, dest.d_size); 94+ process (&ctx, dest.d_buf, dest.d_size);
93 95
94- if (u.shdr.sh_type != SHT_NOBITS) 96- if (u.shdr.sh_type != SHT_NOBITS)
95+ if (u1.shdr.sh_type != SHT_NOBITS) 97+ if (u1.shdr.sh_type != SHT_NOBITS)