RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 18-Oct-2007 06:41:06 Branch: HEAD Handle: 2007101805410500 Modified files: rpm CHANGES rpm/tools debugedit.c Log: - debugedit segfault (#336951,#337011) see #337051 too. Summary: Revision Changes Path 1.1725 +1 -0 rpm/CHANGES 2.16 +11 -6 rpm/tools/debugedit.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1724 -r1.1725 CHANGES --- rpm/CHANGES 17 Oct 2007 20:04:50 -0000 1.1724 +++ rpm/CHANGES 18 Oct 2007 04:41:05 -0000 1.1725 @@ -1,4 +1,5 @@ 4.5 -> 5.0: + - jbj: debugedit segfault (#336951,#337011) see #337051 too. - jbj: commit to hge(h, he, ...) extraction in API. ABI not yet. - jbj: remove the pointless ;-) indirection in *(HE_t) for type/count. - jbj: drill rpmTagData everywhere. @@ . patch -p0 <<'@@ .' Index: rpm/tools/debugedit.c ============================================================================ $ cvs diff -u -r2.15 -r2.16 debugedit.c --- rpm/tools/debugedit.c 6 Oct 2007 01:57:18 -0000 2.15 +++ rpm/tools/debugedit.c 18 Oct 2007 04:41:05 -0000 2.16 @@ -589,11 +589,16 @@ } else { - memcpy (s, comp_dir, comp_dir_len); - s[comp_dir_len] = '/'; - memcpy (s + comp_dir_len + 1, dirt[value], dir_len); - s[comp_dir_len + 1 + dir_len] = '/'; - memcpy (s + comp_dir_len + 1 + dir_len + 1, file, file_len + 1); + char *p = s; + if (comp_dir_len != 0) + { + memcpy (s, comp_dir, comp_dir_len); + s[comp_dir_len] = '/'; + p += comp_dir_len + 1; + } + memcpy (p, dirt[value], dir_len); + p[dir_len] = '/'; + memcpy (p + dir_len + 1, file, file_len + 1); } canonicalize_path (s, s); if (list_file_fd != -1) @@ -850,6 +855,7 @@ switch (form) { + case DW_FORM_ref_addr: /* ptr_size in DWARF 2, offset in DWARF 3 */ case DW_FORM_addr: ptr += ptr_size; break; @@ -875,7 +881,6 @@ case DW_FORM_udata: read_uleb128 (ptr); break; - case DW_FORM_ref_addr: case DW_FORM_strp: ptr += 4; break; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org