Hello stable release team May I upload libdbi-perl_1.53-1etch1 to "stable-proposed-updates"? It contains a backported 2-line patch for a "potential" dataloss problem (confirmed in the changelog of 1.57) which turned out to be a real problem as written by a user in the below quoted mail. I applied only the second part of the below patch as suggested by the DBI author. bye, -christian- On 2007-06-19 Tim Bunce wrote: > Looks fine, though the DBI.xs change (assert) isn't needed and isn't in > the DBI code. > > Tim. > > On Tue, Jun 19, 2007 at 12:43:53AM +0200, Christian Hammers wrote: > > Hello > > > > As reported in the Debian bug tracking system. Can you comment if this > > patch is OK? > > > > bye, > > > > -christian- > > > > > > > > From: Tim Cutts <tjrc@sanger.ac.uk> > > To: ch@debian.org > > Subject: libdbi-perl 1.55 > > Date: Mon, 14 May 2007 11:48:26 +0100 > > X-Mailer: Apple Mail (2.752.2) > > > > Hi Christian, > > > > One of the changes introduced in DBI 1.55 is a very small fix which > > fixes a bug which can really cause data loss (a problem with > > selectall_arrayref). The bug was spotted by one of my colleagues > > here (Rob Davies, whom Tim Bunce credits in the changelog). We have > > actually seen it cause real data loss here, so it's not just a > > theoretical problem. > > > > What I was wondering was whether there is any way we can get that fix > > into Debian on etch's next point release? The patch to fix that > > particular issue is as follows: > > > > diff -Naur DBI-1.54/DBI.xs DBI-1.54.patched/DBI.xs > > --- DBI-1.54/DBI.xs 2007-02-22 01:36:15.000000000 +0000 > > +++ DBI-1.54.patched/DBI.xs 2007-04-26 09:38:00.667000000 +0100 > > @@ -9,7 +9,7 @@ > > > > #define IN_DBI_XS 1 /* see DBIXS.h */ > > #define PERL_NO_GET_CONTEXT > > - > > +#include <assert.h> > > #include "DBIXS.h" /* DBI public interface for DBD's written in > > C */ > > > > # if (defined(_WIN32) && (! defined(HAS_GETTIMEOFDAY))) > > @@ -3104,6 +3104,9 @@ > > outitems = perl_call_sv(isGV(imp_msv) ? > > (SV*)GvCV(imp_msv) : imp_msv, > > (is_DESTROY ? gimme | G_EVAL | G_KEEPERR : gimme) ); > > } > > + > > + assert(outitems >= 0); > > + > > SPAGAIN; > > > > /* XXX restore local vars so ST(n) works below */ > > diff -Naur DBI-1.54/Driver.xst DBI-1.54.patched/Driver.xst > > --- DBI-1.54/Driver.xst 2007-02-22 01:36:15.000000000 +0000 > > +++ DBI-1.54.patched/Driver.xst 2007-04-26 15:15:47.084000000 > > +0100 @@ -121,6 +121,7 @@ > > } > > else { > > sth = dbixst_bounce_method("prepare", 3); > > + SPAGAIN; SP -= items; /* because stack might have been > > realloc'd */ if (!SvROK(sth)) > > XSRETURN_UNDEF; > > } > > @@ -157,6 +158,7 @@ > > else { > > /* --- prepare --- */ > > sth = dbixst_bounce_method("prepare", 3); > > + SPAGAIN; SP -= items; /* because stack might have been > > realloc'd */ if (!SvROK(sth)) { > > if (is_selectrow_array) { XSRETURN_EMPTY; } else > > { XSRETURN_UNDEF; } }
Attachment:
signature.asc
Description: PGP signature