aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2008-10-11 16:47:35 +0000
committerdrh <drh@noemail.net>2008-10-11 16:47:35 +0000
commit10fe840e4dbce702b4d24aa47c61710a97fb673c (patch)
tree0d473a718dec7042a0dfb7fd0754b053878edd96 /src/resolve.c
parent4150ebf86fd9935a19dbdc67bdd72e45a1d46a13 (diff)
downloadsqlite-10fe840e4dbce702b4d24aa47c61710a97fb673c.tar.gz
sqlite-10fe840e4dbce702b4d24aa47c61710a97fb673c.zip
Fix a memory leak on ORDER BY of a compound select caused by the resolver
on a flattened query. Also fix a OOM segfault in WHERE clause processing. (CVS 5801) FossilOrigin-Name: d2c252d6bbde4ae14da6c9e6c2683d763d11c59f
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 10bbf481a..3f3ac939f 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -14,7 +14,7 @@
** resolve all identifiers by associating them with a particular
** table and column.
**
-** $Id: resolve.c,v 1.8 2008/10/10 04:34:16 shane Exp $
+** $Id: resolve.c,v 1.9 2008/10/11 16:47:36 drh Exp $
*/
#include "sqliteInt.h"
#include <stdlib.h>
@@ -77,8 +77,7 @@ static void resolveAlias(
pDup->pColl = pExpr->pColl;
pDup->flags |= EP_ExpCollate;
}
- if( pExpr->span.dyn ) sqlite3DbFree(db, (char*)pExpr->span.z);
- if( pExpr->token.dyn ) sqlite3DbFree(db, (char*)pExpr->token.z);
+ sqlite3ExprClear(db, pExpr);
memcpy(pExpr, pDup, sizeof(*pExpr));
sqlite3DbFree(db, pDup);
}