diff options
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm/debugedit-segv.patch')
-rw-r--r-- | meta/recipes-devtools/rpm/rpm/debugedit-segv.patch | 19 |
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 | ||
16 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | 16 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> |
17 | 17 | ||
18 | Index: rpm-5.4.9/tools/debugedit.c | 18 | Index: 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 | ||