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
Unified Diff Show Whitespace Changes Patch
Changes to src/expr.c.
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 $
*/
#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







|







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.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
      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;
    if( pName ){
      sqliteSetNString(&pList->a[i].zName, pName->z, pName->n, 0);
      sqliteDequote(pList->a[i].zName);
    }
  }
  return pList;
}







|
|







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++;
    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;
}