Control: tag -1 patch On Sat, Jan 19, 2019 at 03:44:43PM +0200, Adrian Bunk wrote: > Source: libdbd-sqlite3-perl > Version: 1.62-1 > Severity: serious > Tags: ftbfs > > https://buildd.debian.org/status/fetch.php?pkg=libdbd-sqlite3-perl&arch=mips&ver=1.62-1&stamp=1546291045&raw=0
> Test Summary Report > ------------------- > t/65_db_config.t (Wstat: 11 Tests: 76 > Failed: 0) > Non-zero wait status: 11 > Parse errors: Bad plan. You planned 79 tests but ran 76. Hi, a standalone test case is perl -Iblib/lib -Iblib/arch -MDBI -e 'DBI->connect("dbi:SQLite:dbname=:memory:", "","", { sqlite_defensive => 1})' and the attached patch fixes it for me. -- Niko Tyni nt...@debian.org
>From daf3153f7ad67edd7071886c866fe790a7875427 Mon Sep 17 00:00:00 2001 From: Niko Tyni <nt...@debian.org> Date: Wed, 13 Feb 2019 20:42:06 +0000 Subject: [PATCH] Fix SQLITE_DBCONFIG_DEFENSIVE parameter types The sqlite3_db_config() function with SQLITE_DBCONFIG_DEFENSIVE takes two 'int' parameters, but Perl integers may have a different size. Passing a 64-bit argument ('long long int') has been observed to cause a segmentation fault on 32-bit big-endian platforms. Bug: https://github.com/DBD-SQLite/DBD-SQLite/issues/45 Bug-Debian: https://bugs.debian.org/919773 --- dbdimp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbdimp.c b/dbdimp.c index ee08425..f4523d7 100644 --- a/dbdimp.c +++ b/dbdimp.c @@ -463,7 +463,7 @@ sqlite_db_login6(SV *dbh, imp_dbh_t *imp_dbh, char *dbname, char *user, char *pa if (hv_exists(hv, "sqlite_defensive", 16)) { val = hv_fetch(hv, "sqlite_defensive", 16, 0); if (val && SvIOK(*val)) { - sqlite3_db_config(imp_dbh->db, SQLITE_DBCONFIG_DEFENSIVE, SvIV(*val), 0); + sqlite3_db_config(imp_dbh->db, SQLITE_DBCONFIG_DEFENSIVE, (int)SvIV(*val), 0); } } } -- 2.11.0