Module: wine Branch: master Commit: a8b51497e518817716a8f79c29999d22726ad35d URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8b51497e518817716a8f79c29...
Author: Hans Leidekker hans@codeweavers.com Date: Mon Sep 5 11:47:37 2011 +0200
msi: Avoid a leak when a query is executed more than once.
---
dlls/msi/where.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/where.c b/dlls/msi/where.c index 5304900..0e346d6 100644 --- a/dlls/msi/where.c +++ b/dlls/msi/where.c @@ -73,6 +73,7 @@ typedef struct tagMSIWHEREVIEW struct expr *cond; UINT rec_index; MSIORDERINFO *order_info; + UINT error; } MSIWHEREVIEW;
#define INITIAL_REORDER_SIZE 16 @@ -617,6 +618,9 @@ static UINT WHERE_execute( struct tagMSIVIEW *view, MSIRECORD *record ) if( !table ) return ERROR_FUNCTION_FAILED;
+ if (wv->reorder) + return wv->error; + r = init_reorder(wv); if (r != ERROR_SUCCESS) return r; @@ -648,7 +652,9 @@ static UINT WHERE_execute( struct tagMSIVIEW *view, MSIRECORD *record )
if (wv->order_info) r = wv->order_info->error; + msi_free( rows ); + wv->error = r; return r; }