]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
The user-defined function routines failed to detect a malloc() failure. (CVS 397)
authordrh <drh@noemail.net>
Wed, 27 Feb 2002 01:53:13 +0000 (01:53 +0000)
committerdrh <drh@noemail.net>
Wed, 27 Feb 2002 01:53:13 +0000 (01:53 +0000)
FossilOrigin-Name: 085b0d671a1dac964693d69d866224de155dfe4c

manifest
manifest.uuid
src/expr.c
src/main.c

index d444e27bae7a083c5388e0b50c482e29252639ea..6dc9e9595d90a5ca39bfe1b34b868ca894be6766 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Bug\sfixes\sin\sthe\sVIEW\simplementation.\s(CVS\s396)
-D 2002-02-27T01:47:12
+C The\suser-defined\sfunction\sroutines\sfailed\sto\sdetect\sa\smalloc()\sfailure.\s(CVS\s397)
+D 2002-02-27T01:53:13
 F Makefile.in 50f1b3351df109b5774771350d8c1b8d3640130d
 F Makefile.template 89e373b2dad0321df00400fa968dc14b61a03296
 F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
@@ -23,12 +23,12 @@ F src/btree.c 495275fe14f3b718cf2f691dce979d4c0e1f8e5d
 F src/btree.h 8abeabfe6e0b1a990b64fa457592a6482f6674f3
 F src/build.c 7ada2426caba70cb1072ba268bedb694b5018065
 F src/delete.c 950d8f9097361419f1963875f9943344b469cf02
-F src/expr.c 4716119eea61b4f47225fca2338e75baa30b1315
+F src/expr.c 92ff4a2d87f7443f6081ba2d51e25c27e10c7b4e
 F src/func.c bed0099aaa558f8bfc50d9349bf7da2c99903f47
 F src/hash.c cc259475e358baaf299b00a2c7370f2b03dda892
 F src/hash.h dca065dda89d4575f3176e75e9a3dc0f4b4fb8b9
 F src/insert.c 164d2d5e943268a8ff0594e1947599e04df0ce11
-F src/main.c 69ba23401427f18f6eb1e9b92a3bd3236e2e39ad
+F src/main.c cbfa66d53578935790488f37f476d4932e36c01a
 F src/md5.c 52f677bfc590e09f71d07d7e327bd59da738d07c
 F src/os.c f6bc9b7ab530346bb7fef2ed39f2f1f214bc14ea
 F src/os.h a17596ecc7f38a228b83ecdb661fb03ce44726d6
@@ -127,7 +127,7 @@ F www/speed.tcl 83457b2bf6bb430900bd48ca3dd98264d9a916a5
 F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279
 F www/tclsqlite.tcl 829b393d1ab187fd7a5e978631b3429318885c49
 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 63b87f2ea6cd78f039bf40026d21b18de20b3ba7
-R 9c2c59a14c868fd7e37dce1c3892e2d4
+P 668ef6380eba256ef82477b63aef850249a619a0
+R 672b44d109bf7bbf0ab39b1722058efe
 U drh
-Z e0d30da2ff6970c032fa0a7ae0570fac
+Z f74017b4041ef28aa366f6915101de05
index fd0d0befb6b34efb9681b917cbd6079f7762d955..dd7aaa092cbd86eb8eb278d6449ae87418e76dd4 100644 (file)
@@ -1 +1 @@
-668ef6380eba256ef82477b63aef850249a619a0
\ No newline at end of file
+085b0d671a1dac964693d69d866224de155dfe4c
\ No newline at end of file
index 979ff63ea238779073ef7fe2a4c2a1fb5efb6af7..4be07e5f8524b4a1baf736c80d9331ef3f68df5a 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains routines used for analyzing expressions and
 ** for generating VDBE code that evaluates expressions in SQLite.
 **
-** $Id: expr.c,v 1.46 2002/02/27 01:47:12 drh Exp $
+** $Id: expr.c,v 1.47 2002/02/27 01:53:13 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -1396,6 +1396,7 @@ UserFunc *sqliteFindUserFunction(
 ){
   UserFunc *pFirst, *p, *pMaybe;
   pFirst = p = (UserFunc*)sqliteHashFind(&db->userFunc, zName, nName);
+  if( p==0 ) return 0;
   if( !createFlag && nArg<0 ){
     while( p && p->xFunc==0 && p->xStep==0 ){ p = p->pNext; }
     return p;
index 3ec2f5dd5036c703dbcd1cbd6bfbc9e83d23a585..6d78afbf1502959aab141f11f607a150a36f87da 100644 (file)
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.63 2002/02/24 01:55:17 drh Exp $
+** $Id: main.c,v 1.64 2002/02/27 01:53:13 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -648,6 +648,7 @@ int sqlite_create_function(
   UserFunc *p;
   if( db==0 || zName==0 ) return 1;
   p = sqliteFindUserFunction(db, zName, strlen(zName), nArg, 1);
+  if( p==0 ) return 1;
   p->xFunc = xFunc;
   p->xStep = 0;
   p->xFinalize = 0;
@@ -663,6 +664,7 @@ int sqlite_create_aggregate(
   UserFunc *p;
   if( db==0 || zName==0 ) return 1;
   p = sqliteFindUserFunction(db, zName, strlen(zName), nArg, 1);
+  if( p==0 ) return 1;
   p->xFunc = 0;
   p->xStep = xStep;
   p->xFinalize = xFinalize;