SQLite

Check-in [d654995440]
Login

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

Overview
Comment:Fix a bulk-memory initialization problem in the expression list logic. (CVS 1130)
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: d6549954408b01e5eaf865b9100739c94de28f16
User & Date: drh 2003-12-10 03:13:44.000
Context
2003-12-15
17:51
Updates to the homepage - fix the CVS access instructions. (CVS 1131) (check-in: 653a7dd97e user: drh tags: trunk)
2003-12-10
03:13
Fix a bulk-memory initialization problem in the expression list logic. (CVS 1130) (check-in: d654995440 user: drh tags: trunk)
01:31
Fix the code generator to a void a VDBE stack overflow on 3-way joins. Ticket #519. (CVS 1129) (check-in: 230a4ff2c8 user: drh tags: trunk)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to src/expr.c.
8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
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 routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.101 2003/09/23 10:25:33 drh Exp $
** $Id: expr.c,v 1.102 2003/12/10 03:13:44 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>

/*
** Construct a new expression node and return a pointer to it.  Memory
** for this node is obtained from sqliteMalloc().  The calling function
263
264
265
266
267
268
269
270
271


272
273
274
275
276
277
278
263
264
265
266
267
268
269


270
271
272
273
274
275
276
277
278







-
-
+
+







      sqliteExprDelete(pExpr);
      return pList;
    }
    pList->a = a;
  }
  if( pList->a && (pExpr || pName) ){
    i = pList->nExpr++;
    pList->a[i].pExpr = pExpr;
    pList->a[i].zName = 0;
    memset(&pList->a[i], 0, sizeof(pList->a[i]));
    pList->a[i].pExpr = pExpr;
    if( pName ){
      sqliteSetNString(&pList->a[i].zName, pName->z, pName->n, 0);
      sqliteDequote(pList->a[i].zName);
    }
  }
  return pList;
}