nixpkgs/pkgs/development/perl-modules/DBD-SQLite/reset.patch
Eelco Dolstra 1357c14500 * DBD::SQLite needs a patch to prevent segfaults in case of timeouts.
svn path=/nixpkgs/trunk/; revision=13386
2008-11-24 10:11:09 +00:00

41 lines
1.9 KiB
Diff

diff -rc DBD-SQLite-1.14-orig/dbdimp.c DBD-SQLite-1.14/dbdimp.c
*** DBD-SQLite-1.14-orig/dbdimp.c 2007-08-24 04:51:25.000000000 +0200
--- DBD-SQLite-1.14/dbdimp.c 2008-11-10 18:31:53.000000000 +0100
***************
*** 398,405 ****
if (imp_sth->retval == SQLITE_ROW) {
continue;
}
! /* There are bug reports that say this should be sqlite3_reset() */
! sqlite3_finalize(imp_sth->stmt);
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
return -5;
}
--- 398,404 ----
if (imp_sth->retval == SQLITE_ROW) {
continue;
}
! sqlite3_reset(imp_sth->stmt);
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
return -5;
}
***************
*** 418,425 ****
case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
return 0;
! /* There are bug reports that say this should be sqlite3_reset() */
! default: sqlite3_finalize(imp_sth->stmt);
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
return -6;
}
--- 417,423 ----
case SQLITE_DONE: DBIc_ACTIVE_on(imp_sth);
sqlite_trace(5, "exec ok - %d rows, %d cols\n", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth));
return 0;
! default: sqlite3_reset(imp_sth->stmt);
sqlite_error(sth, (imp_xxh_t*)imp_sth, imp_sth->retval, (char*)sqlite3_errmsg(imp_dbh->db));
return -6;
}
Only in DBD-SQLite-1.14/: dbdimp.c~