From: drh Date: Tue, 31 Jan 2006 19:07:22 +0000 (+0000) Subject: 3rd parameter to sqlite3_prepare() should be -1 if the string length is X-Git-Tag: version-3.6.10~3120 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=5e6078bdbaaf2812b3e35dd5cd1e8370148d98a1;p=thirdparty%2Fsqlite.git 3rd parameter to sqlite3_prepare() should be -1 if the string length is unknown. Passing in zero causes a zero-length SQL statement to be prepared, which is a no-op. Ticket #1651. This bug introduced by the fix for ticket #1650. (CVS 3047) FossilOrigin-Name: 1e68ac590d9edd3784cd7afd6705a30f01740d0d --- diff --git a/manifest b/manifest index 099293da9d..0484101efc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Version\s3.3.3\s(CVS\s3046) -D 2006-01-31T16:21:13 +C 3rd\sparameter\sto\ssqlite3_prepare()\sshould\sbe\s-1\sif\sthe\sstring\slength\sis\r\nunknown.\s\sPassing\sin\szero\scauses\sa\szero-length\sSQL\sstatement\sto\sbe\r\nprepared,\swhich\sis\sa\sno-op.\s\sTicket\s#1651.\s\sThis\sbug\sintroduced\sby\sthe\r\nfix\sfor\sticket\s#1650.\s(CVS\s3047) +D 2006-01-31T19:07:22 F Makefile.in e936c6fc3134838318aa0335a85041e6da31f6ee F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -68,7 +68,7 @@ F src/printf.c c7d6ad9efb71c466305297a448308f467b6e2b6e F src/random.c d40f8d356cecbd351ccfab6eaedd7ec1b54f5261 F src/select.c daee9b20702ba51cf3807fc1b130edd8846e3e48 F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96 -F src/shell.c ea0e46545442f9fbb8015afa821259816bfaeb96 +F src/shell.c fc75e0c95695647d7eecfcd8616755a3ac1da65d F src/sqlite.h.in 492580f7e3ff71eb43193eb7bb98e2d549889ce3 F src/sqliteInt.h 0121298397ac14eb468ab1ba9d488ac7ed7d88a1 F src/table.c 486dcfce532685b53b5a2b5da8bba0ded6fb2316 @@ -349,7 +349,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 1133a84039e6a81855445b5309b36136f0a7d149 -R d780f1bf3c13e6f86571526dac5e41a9 +P 10a3f5654616cfe5b245f1348249101a7d956222 +R 8e3224f314f61c4c427170e0050b4bd4 U drh -Z fd37dc8fb5b7e06412c3a86efaef40eb +Z a6d5897bc00fd9aedbdfb205e17096ef diff --git a/manifest.uuid b/manifest.uuid index d2a7445c11..ef6a1a2f65 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -10a3f5654616cfe5b245f1348249101a7d956222 \ No newline at end of file +1e68ac590d9edd3784cd7afd6705a30f01740d0d \ No newline at end of file diff --git a/src/shell.c b/src/shell.c index 02040a238b..2ada35b7f2 100644 --- a/src/shell.c +++ b/src/shell.c @@ -12,7 +12,7 @@ ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** -** $Id: shell.c,v 1.131 2006/01/25 15:55:38 drh Exp $ +** $Id: shell.c,v 1.132 2006/01/31 19:07:22 drh Exp $ */ #include #include @@ -1040,7 +1040,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){ zSql = sqlite3_mprintf("SELECT * FROM '%q'", zTable); if( zSql==0 ) return 0; nByte = strlen(zSql); - rc = sqlite3_prepare(p->db, zSql, 0, &pStmt, 0); + rc = sqlite3_prepare(p->db, zSql, -1, &pStmt, 0); sqlite3_free(zSql); if( rc ){ fprintf(stderr,"Error: %s\n", sqlite3_errmsg(db)); @@ -1060,7 +1060,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){ } zSql[j++] = ')'; zSql[j] = 0; - rc = sqlite3_prepare(p->db, zSql, 0, &pStmt, 0); + rc = sqlite3_prepare(p->db, zSql, -1, &pStmt, 0); free(zSql); if( rc ){ fprintf(stderr, "Error: %s\n", sqlite3_errmsg(db));