[1/3] msi: Fix comparison of table ids in TABLE_Exists.

Hans Leidekker hans at codeweavers.com
Wed Sep 8 05:17:01 CDT 2010


Fixes http://bugs.winehq.org/show_bug.cgi?id=24272
---
 dlls/msi/table.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/msi/table.c b/dlls/msi/table.c
index 6755496..464eced 100644
--- a/dlls/msi/table.c
+++ b/dlls/msi/table.c
@@ -988,8 +988,8 @@ done:
 /* try to find the table name in the _Tables table */
 BOOL TABLE_Exists( MSIDATABASE *db, LPCWSTR name )
 {
-    UINT r, table_id = 0, i, count;
-    MSITABLE *table = NULL;
+    UINT r, table_id, i;
+    MSITABLE *table;
 
     static const WCHAR szStreams[] = {'_','S','t','r','e','a','m','s',0};
     static const WCHAR szStorages[] = {'_','S','t','o','r','a','g','e','s',0};
@@ -1012,10 +1012,11 @@ BOOL TABLE_Exists( MSIDATABASE *db, LPCWSTR name )
         return FALSE;
     }
 
-    count = table->row_count;
-    for( i=0; i<count; i++ )
-        if( table->data[ i ][ 0 ] == table_id )
+    for( i = 0; i < table->row_count; i++ )
+    {
+        if( read_table_int( table->data, i, 0, db->bytes_per_strref ) == table_id )
             return TRUE;
+    }
 
     return FALSE;
 }
-- 
1.7.0.4







More information about the wine-patches mailing list