Module: wine Branch: master Commit: bb0b4673669ebf93337bf34eb89251fdc8f25608 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bb0b4673669ebf93337bf34eb8...
Author: Hans Leidekker hans@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 ); }