Hans Leidekker : msi: Avoid a null pointer dereference in MsiGetFileVersionW (clang).
Alexandre Julliard
julliard at winehq.org
Mon Feb 6 15:17:55 CST 2012
Module: wine
Branch: master
Commit: bb0b4673669ebf93337bf34eb89251fdc8f25608
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bb0b4673669ebf93337bf34eb89251fdc8f25608
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri Feb 3 10:49:00 2012 +0100
msi: Avoid a null pointer dereference in MsiGetFileVersionW (clang).
---
dlls/msi/msi.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index cc83e39..f34bfc9 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -3201,18 +3201,18 @@ UINT WINAPI MsiGetFileVersionW( LPCWSTR path, LPWSTR verbuf, LPDWORD verlen,
return ERROR_INVALID_PARAMETER;
ret = get_file_version( path, verbuf, verlen, langbuf, langlen );
- if (ret == ERROR_RESOURCE_DATA_NOT_FOUND)
+ if (ret == ERROR_RESOURCE_DATA_NOT_FOUND && verlen)
{
int len;
WCHAR *version = msi_font_version_from_file( path );
if (!version) return ERROR_FILE_INVALID;
len = strlenW( version );
- if (*verlen > len)
+ if (len >= *verlen) ret = ERROR_MORE_DATA;
+ else if (verbuf)
{
strcpyW( verbuf, version );
ret = ERROR_SUCCESS;
}
- else ret = ERROR_MORE_DATA;
*verlen = len;
msi_free( version );
}
More information about the wine-cvs
mailing list