Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix the ".genfkey" command of the CLI so that it does not leak memory if sqlite3_realloc() fails. Ticket #3891. (CVS 6696) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a028d69c70ae961f418052a91aa1518e |
User & Date: | drh 2009-05-31 17:16:10.000 |
Context
2009-05-31
| ||
21:21 | Code simplifications to facilitate coverage testing following the recent changes to the Expr object. (CVS 6697) (check-in: ee9a144d44 user: drh tags: trunk) | |
17:16 | Fix the ".genfkey" command of the CLI so that it does not leak memory if sqlite3_realloc() fails. Ticket #3891. (CVS 6696) (check-in: a028d69c70 user: drh tags: trunk) | |
2009-05-30
| ||
23:35 | Fix typo reported by ticket #3888. Other minor edits to facilitate coverage testing. (CVS 6695) (check-in: 164adf261d user: drh tags: trunk) | |
Changes
Changes to src/shell.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** ** $Id: shell.c,v 1.210 2009/05/31 17:16:10 drh Exp $ */ #if defined(_WIN32) || defined(WIN32) /* This needs to come before any includes for MSVC compiler */ #define _CRT_SECURE_NO_WARNINGS #endif #include <stdlib.h> |
︙ | ︙ | |||
619 620 621 622 623 624 625 626 | zCopy = (const char *)sqlite3_value_text(argv[j+1]); nCopy = sqlite3_value_bytes(argv[j+1]); nReplace = n; break; } } if( (nOut+nCopy)>nMalloc ){ nMalloc = 16 + (nOut+nCopy)*2; | > | > > > > > > | 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 | zCopy = (const char *)sqlite3_value_text(argv[j+1]); nCopy = sqlite3_value_bytes(argv[j+1]); nReplace = n; break; } } if( (nOut+nCopy)>nMalloc ){ char *zNew; nMalloc = 16 + (nOut+nCopy)*2; zNew = (char*)sqlite3_realloc(zOut, nMalloc); if( zNew==0 ){ sqlite3_result_error_nomem(context); return; }else{ zOut = zNew; } } assert( nMalloc>=(nOut+nCopy) ); memcpy(&zOut[nOut], zCopy, nCopy); i += nReplace; nOut += nCopy; } |
︙ | ︙ |