summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm/debugedit-segv.patch')
-rw-r--r--meta/recipes-devtools/rpm/rpm/debugedit-segv.patch19
1 files changed, 9 insertions, 10 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch b/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
index 74efe6570c..beef5edd9d 100644
--- a/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
+++ b/meta/recipes-devtools/rpm/rpm/debugedit-segv.patch
@@ -15,11 +15,11 @@ 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.9/tools/debugedit.c 18Index: rpm-5.4.14/tools/debugedit.c
19=================================================================== 19===================================================================
20--- rpm-5.4.9.orig/tools/debugedit.c 20--- rpm-5.4.14.orig/tools/debugedit.c
21+++ rpm-5.4.9/tools/debugedit.c 21+++ rpm-5.4.14/tools/debugedit.c
22@@ -1432,21 +1432,24 @@ handle_build_id (DSO *dso, Elf_Data *bui 22@@ -1445,21 +1445,24 @@ handle_build_id (DSO *dso, Elf_Data *bui
23 auto inline void process (const void *data, size_t size) 23 auto inline void process (const void *data, size_t size)
24 { 24 {
25 memchunk chunk = { .data = (void *) data, .size = size }; 25 memchunk chunk = { .data = (void *) data, .size = size };
@@ -34,16 +34,15 @@ Index: rpm-5.4.9/tools/debugedit.c
34 GElf_Shdr shdr; 34 GElf_Shdr shdr;
35- } u; 35- } u;
36- Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u }; 36- Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u };
37- 37+ } u1, u2;
38+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
39+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
40
38- x.d_type = ELF_T_EHDR; 41- x.d_type = ELF_T_EHDR;
39- x.d_size = sizeof u.ehdr; 42- x.d_size = sizeof u.ehdr;
40- u.ehdr = dso->ehdr; 43- u.ehdr = dso->ehdr;
41- u.ehdr.e_phoff = u.ehdr.e_shoff = 0; 44- u.ehdr.e_phoff = u.ehdr.e_shoff = 0;
42- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) 45- if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL)
43+ } u1, u2;
44+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 };
45+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 };
46+
47+ src.d_type = ELF_T_EHDR; 46+ src.d_type = ELF_T_EHDR;
48+ src.d_size = sizeof u1.ehdr; 47+ src.d_size = sizeof u1.ehdr;
49+ dest.d_size = sizeof u2.ehdr; 48+ dest.d_size = sizeof u2.ehdr;
@@ -53,7 +52,7 @@ Index: rpm-5.4.9/tools/debugedit.c
53 { 52 {
54 bad: 53 bad:
55 fprintf (stderr, "Failed to compute header checksum: %s\n", 54 fprintf (stderr, "Failed to compute header checksum: %s\n",
56@@ -1454,29 +1457,31 @@ handle_build_id (DSO *dso, Elf_Data *bui 55@@ -1467,29 +1470,31 @@ handle_build_id (DSO *dso, Elf_Data *bui
57 exit (1); 56 exit (1);
58 } 57 }
59 58