/ Check-in [943b11fb]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Do not overrun a buffer in the genfkey code (now part of shell.c). Fix for #3722. (CVS 6344)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:943b11fb188835f0c62b6064b084192b1bbe1c0c
User & Date: danielk1977 2009-03-13 15:32:53
Context
2009-03-14
08:37
Fix for #3719. When synthesizing a CREATE TABLE statement as as result of a "CREATE TABLE AS", quote the column type names unless they are simple identifiers or simple identifiers followed by one or two dimensions (e.g. "VARCHAR(10)"). (CVS 6345) check-in: 7c6437ef user: danielk1977 tags: trunk
2009-03-13
15:32
Do not overrun a buffer in the genfkey code (now part of shell.c). Fix for #3722. (CVS 6344) check-in: 943b11fb user: danielk1977 tags: trunk
2009-03-12
15:43
Avoid fts3 crash on (MATCH '""') expressions. Ticket #3717. (CVS 6343) check-in: 03679857 user: danielk1977 tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/shell.c.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
621
622
623
624
625
626
627
628
629
630

631
632
633
634
635
636
637
**    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.205 2009/03/05 03:48:07 shane 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>
................................................................................
        zCopy = (const char *)sqlite3_value_text(argv[j+1]);
        nCopy = sqlite3_value_bytes(argv[j+1]);
        nReplace = n;
        break;
      }
    }
    if( (nOut+nCopy)>nMalloc ){
      nMalloc += (nMalloc + 16);
      zOut = (char *)sqlite3_realloc(zOut, nMalloc);
    }

    memcpy(&zOut[nOut], zCopy, nCopy);
    i += nReplace;
    nOut += nCopy;
  }

  sqlite3_result_text(context, zOut, nOut, SQLITE_TRANSIENT);
  sqlite3_free(zOut);







|







 







|


>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
**    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.206 2009/03/13 15:32:53 danielk1977 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>
................................................................................
        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;
      zOut = (char *)sqlite3_realloc(zOut, nMalloc);
    }
    assert( nMalloc>=(nOut+nCopy) );
    memcpy(&zOut[nOut], zCopy, nCopy);
    i += nReplace;
    nOut += nCopy;
  }

  sqlite3_result_text(context, zOut, nOut, SQLITE_TRANSIENT);
  sqlite3_free(zOut);