[1/4] msi: Avoid a leak when a query is executed more than once.
Hans Leidekker
hans at codeweavers.com
Mon Sep 5 04:47:37 CDT 2011
---
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 cc80a71..211657c 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;
}
--
1.7.4.1
More information about the wine-patches
mailing list