RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Olivier Thauvin Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 01-Nov-2007 18:12:34 Branch: HEAD Handle: 2007110117123300 Modified files: rpm/perl RPM_Header.xs Log: - avoid segfault in case of NULL ptr return from headerSprintf Summary: Revision Changes Path 1.8 +4 -13 rpm/perl/RPM_Header.xs ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/perl/RPM_Header.xs ============================================================================ $ cvs diff -u -r1.7 -r1.8 RPM_Header.xs --- rpm/perl/RPM_Header.xs 12 Sep 2007 07:05:04 -0000 1.7 +++ rpm/perl/RPM_Header.xs 1 Nov 2007 17:12:33 -0000 1.8 @@ -25,16 +25,6 @@ #include "rpmxs.h" -void -_populate_header_tags(HV *href) -{ - int i = 0; - - for (i = 0; i < rpmTagTableSize; i++) { - hv_store(href, rpmTagTable[i].name, strlen(rpmTagTable[i].name), newSViv(rpmTagTable[i].val), 0); - } -} - MODULE = RPM::Header PACKAGE = RPM::Header PROTOTYPES: ENABLE @@ -131,11 +121,12 @@ Header h char * format PREINIT: - char * s; + const char * s; PPCODE: s = headerSprintf(h, format, rpmTagTable, rpmHeaderFormats, NULL); - PUSHs(sv_2mortal(newSVpv((char *)s, 0))); - s = _free(s); + if (s) + PUSHs(sv_2mortal(newSVpv((char *)s, 0))); + s = _free(s); # Write rpm header into file pointer # fedora use HEADER_MAGIC_NO, too bad, set no_header_magic make the function @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org