On 1/26/2011 19:16, André Hentschel wrote:
http://austinenglish.com/logs/valgrind/2011-01-25-11.02/vg-gameux_gamestatistics.txt

native returns S_OK, but NULL for the title when the category is not available
see also 
http://source.winehq.org/git/wine.git/?a=blob;f=dlls/gameux/tests/gamestatistics.c;h=5bae4c8fb3cf3a013c908927ef895b07daafe548;hb=HEAD#l365

That should also fix the crash in 
http://test.winehq.org/data/72e089d6009b524c68e9996d7c6e042c3f86cd69/wine_ss-ku1010-win32-heap/gameux:gamestatistics.html
---
  dlls/gameux/gamestatistics.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dlls/gameux/gamestatistics.c b/dlls/gameux/gamestatistics.c
index c96fb6d..7ad5e52 100644
--- a/dlls/gameux/gamestatistics.c
+++ b/dlls/gameux/gamestatistics.c
@@ -826,7 +826,7 @@ static HRESULT WINAPI GameStatisticsImpl_GetCategoryTitle(
          hr = E_INVALIDARG;


-    if(SUCCEEDED(hr))
+    if(SUCCEEDED(hr)&&  This->stats.categories[categoryIndex].sName)
      {
          nLength = lstrlenW(This->stats.categories[categoryIndex].sName);
          if(nLength != 0)
Er, what does it change? NULL sName doesn't produce zero length?

Also what looks strange is few lines before that:

---
    *pTitle = NULL;

    if(!pTitle || categoryIndex >= MAX_CATEGORIES)
        hr = E_INVALIDARG;
---

The whole method should be fixed/cleaned:
- return earlier on invalid arguments;
- remove hr as it's useless;
- remove dereference before a check.



Reply via email to