diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2016-02-23 11:28:21 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-09 16:59:55 +0000 |
commit | ee97e53fcceabc6ef4ddc68f38c5fa0e05c5d9a8 (patch) | |
tree | bf62d871484732f064894b0002fa30353a76b50b /meta/recipes-devtools/rpm/rpm/debugedit-segv.patch | |
parent | e609c4edb211c576af35b7ac0c190dc9a7673483 (diff) | |
download | openembedded-core-contrib-ee97e53fcceabc6ef4ddc68f38c5fa0e05c5d9a8.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
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'meta/recipes-devtools/rpm/rpm/debugedit-segv.patch')
-rw-r--r-- | meta/recipes-devtools/rpm/rpm/debugedit-segv.patch | 46 |
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 Signed-off-by: Mark Hatle <mark.hatle@windriver.com> -Index: rpm-5.4.14/tools/debugedit.c +Index: rpm/tools/debugedit.c =================================================================== ---- rpm-5.4.14.orig/tools/debugedit.c -+++ rpm-5.4.14/tools/debugedit.c -@@ -1445,21 +1445,24 @@ handle_build_id (DSO *dso, Elf_Data *bui - auto inline void process (const void *data, size_t size) - { - memchunk chunk = { .data = (void *) data, .size = size }; -- hashFunctionContextUpdateMC (&ctx, &chunk); -+ if (data != NULL && size != 0) -+ hashFunctionContextUpdateMC (&ctx, &chunk); - } - union - { +--- rpm.orig/tools/debugedit.c ++++ rpm/tools/debugedit.c +@@ -1403,7 +1403,8 @@ static inline void process (hashFunction + const void *data, size_t size) + { + memchunk chunk = { .data = (void *) data, .size = size }; +- hashFunctionContextUpdateMC (ctx, &chunk); ++ if (data != NULL && size != 0) ++ hashFunctionContextUpdateMC (ctx, &chunk); + } + + /* Compute a fresh build ID bit-string from the editted file contents. */ +@@ -1456,14 +1457,16 @@ handle_build_id (DSO *dso, Elf_Data *bui GElf_Ehdr ehdr; GElf_Phdr phdr; GElf_Shdr shdr; - } u; - Elf_Data x = { .d_version = EV_CURRENT, .d_buf = &u }; -+ } u1, u2; -+ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 }; -+ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 }; - +- - x.d_type = ELF_T_EHDR; - x.d_size = sizeof u.ehdr; - u.ehdr = dso->ehdr; - u.ehdr.e_phoff = u.ehdr.e_shoff = 0; - if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) ++ } u1, u2; ++ Elf_Data src = { .d_version = EV_CURRENT, .d_buf = &u1 }; ++ Elf_Data dest = { .d_version = EV_CURRENT, .d_buf = &u2 }; ++ + src.d_type = ELF_T_EHDR; + src.d_size = sizeof u1.ehdr; + dest.d_size = sizeof u2.ehdr; @@ -52,7 +54,7 @@ Index: rpm-5.4.14/tools/debugedit.c { bad: fprintf (stderr, "Failed to compute header checksum: %s\n", -@@ -1467,29 +1470,31 @@ handle_build_id (DSO *dso, Elf_Data *bui +@@ -1471,29 +1474,31 @@ handle_build_id (DSO *dso, Elf_Data *bui exit (1); } @@ -69,8 +71,8 @@ Index: rpm-5.4.14/tools/debugedit.c - if (elf64_xlatetom (&x, &x, dso->ehdr.e_ident[EI_DATA]) == NULL) + if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL) goto bad; -- process (x.d_buf, x.d_size); -+ process (dest.d_buf, dest.d_size); +- process (&ctx, x.d_buf, x.d_size); ++ process (&ctx, dest.d_buf, dest.d_size); } - x.d_type = ELF_T_SHDR; @@ -88,8 +90,8 @@ Index: rpm-5.4.14/tools/debugedit.c + u1.shdr.sh_offset = 0; + if (elf64_xlatetom (&dest, &src, dso->ehdr.e_ident[EI_DATA]) == NULL) goto bad; -- process (x.d_buf, x.d_size); -+ process (dest.d_buf, dest.d_size); +- process (&ctx, x.d_buf, x.d_size); ++ process (&ctx, dest.d_buf, dest.d_size); - if (u.shdr.sh_type != SHT_NOBITS) + if (u1.shdr.sh_type != SHT_NOBITS) |