| Fix CVE-2017-15286 |
| |
| SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c |
| because it fails to consider certain cases where |
| `sqlite3_step(pStmt)==SQLITE_ROW` is false and a data structure is never |
| initialized. |
| |
| https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=878680 |
| |
| Upstream commit: http://www.sqlite.org/src/info/5d0ceb8dcdef92cd |
| |
| Index: src/shell.c |
| ================================================================== |
| --- src/shell.c |
| +++ src/shell.c |
| @@ -3807,10 +3807,11 @@ |
| isIPK = 0; |
| } |
| } |
| } |
| sqlite3_finalize(pStmt); |
| + if( azCol==0 ) return 0; |
| azCol[0] = 0; |
| azCol[nCol+1] = 0; |
| |
| /* The decision of whether or not a rowid really needs to be preserved |
| ** is tricky. We never need to preserve a rowid for a WITHOUT ROWID table |
| |