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