41 lines
1.6 KiB
Diff
41 lines
1.6 KiB
Diff
|
commit deb274226783ab886bdb44876944e156757efe2b
|
||
|
Author: Daniel Beitler <dan@dablabs.com>
|
||
|
Date: Sun May 18 13:27:42 2014 -0400
|
||
|
|
||
|
msi: Prevent call to memset with a null pointer
|
||
|
in get_tablecolumns function.
|
||
|
|
||
|
Fix miscompilation with gcc >= 4.9
|
||
|
See https://bugs.winehq.org/show_bug.cgi?id=36139 for the upstream
|
||
|
bug report. There won't be a Wine 1.6.3 so we need to address this
|
||
|
anyway.
|
||
|
|
||
|
Backported from: deb274226783ab886bdb44876944e156757efe2b
|
||
|
Signed-off-by: André Hentschel <nerv@dawncrow.de>
|
||
|
---
|
||
|
dlls/msi/table.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/dlls/msi/table.c b/dlls/msi/table.c
|
||
|
index 8012369..9ed9421 100644
|
||
|
--- a/dlls/msi/table.c
|
||
|
+++ b/dlls/msi/table.c
|
||
|
@@ -671,7 +671,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF
|
||
|
/* Note: _Columns table doesn't have non-persistent data */
|
||
|
|
||
|
/* if maxcount is non-zero, assume it's exactly right for this table */
|
||
|
- memset( colinfo, 0, maxcount * sizeof(*colinfo) );
|
||
|
+ if (colinfo) memset( colinfo, 0, maxcount * sizeof(*colinfo) );
|
||
|
count = table->row_count;
|
||
|
for (i = 0; i < count; i++)
|
||
|
{
|
||
|
@@ -684,7 +684,7 @@ static UINT get_tablecolumns( MSIDATABASE *db, LPCWSTR szTableName, MSICOLUMNINF
|
||
|
/* check the column number is in range */
|
||
|
if (col < 1 || col > maxcount)
|
||
|
{
|
||
|
- ERR("column %d out of range\n", col);
|
||
|
+ ERR("column %d out of range (maxcount: %d)\n", col, maxcount);
|
||
|
continue;
|
||
|
}
|
||
|
/* check if this column was already set */
|