Hans Leidekker : msi: Avoid a crash when MIME entries point to non-existing extensions.
Module: wine Branch: master Commit: 95d72ae6f012968486402ac82f2758b9ee44008c URL: http://source.winehq.org/git/wine.git/?a=commit;h=95d72ae6f012968486402ac82f... Author: Hans Leidekker <hans(a)codeweavers.com> Date: Thu May 1 10:07:23 2014 +0200 msi: Avoid a crash when MIME entries point to non-existing extensions. --- dlls/msi/classes.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c index 2719a8e..df5c817 100644 --- a/dlls/msi/classes.c +++ b/dlls/msi/classes.c @@ -1452,14 +1452,14 @@ UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY( mt, &package->mimes, MSIMIME, entry ) { - LPWSTR extension, key; + LPWSTR extension = NULL, key; /* * check if the MIME is to be installed. Either as requested by an * extension or Class */ if ((!mt->Class || mt->Class->action != INSTALLSTATE_LOCAL) && - mt->Extension->action != INSTALLSTATE_LOCAL) + (!mt->Extension || mt->Extension->action != INSTALLSTATE_LOCAL)) { TRACE("MIME %s not scheduled to be installed\n", debugstr_w(mt->ContentType)); continue; @@ -1467,7 +1467,7 @@ UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package) TRACE("Registering MIME type %s\n", debugstr_w(mt->ContentType)); - extension = msi_alloc( (strlenW( mt->Extension->Extension ) + 2) * sizeof(WCHAR) ); + if (mt->Extension) extension = msi_alloc( (strlenW( mt->Extension->Extension ) + 2) * sizeof(WCHAR) ); key = msi_alloc( (strlenW( mt->ContentType ) + strlenW( szMIMEDatabase ) + 1) * sizeof(WCHAR) ); if (extension && key) @@ -1510,7 +1510,7 @@ UINT ACTION_UnregisterMIMEInfo( MSIPACKAGE *package ) LPWSTR mime_key; if ((!mime->Class || mime->Class->action != INSTALLSTATE_ABSENT) && - mime->Extension->action != INSTALLSTATE_ABSENT) + (!mime->Extension || mime->Extension->action != INSTALLSTATE_ABSENT)) { TRACE("MIME %s not scheduled to be removed\n", debugstr_w(mime->ContentType)); continue;
participants (1)
-
Alexandre Julliard