RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
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;
@@ .
Received on Thu Oct 18 06:41:06 2007