msi: Only read an internal package if the file to install is compressed.

This commit is contained in:
James Hawkins 2008-01-05 00:07:34 -06:00 committed by Alexandre Julliard
parent d65daea454
commit 4b4f737bfc

View File

@ -573,22 +573,20 @@ static UINT load_media_info(MSIPACKAGE *package, MSIFILE *file, struct media_inf
mi->first_volume = strdupW(mi->volume_label); mi->first_volume = strdupW(mi->volume_label);
source_dir = msi_dup_property(package, cszSourceDir); source_dir = msi_dup_property(package, cszSourceDir);
lstrcpyW(mi->source, source_dir);
if (mi->cabinet && mi->cabinet[0] == '#') if (file->IsCompressed && mi->cabinet)
{ {
r = writeout_cabinet_stream(package, &mi->cabinet[1], mi->source); if (mi->cabinet[0] == '#')
if (r != ERROR_SUCCESS)
{ {
ERR("Failed to extract cabinet stream\n"); r = writeout_cabinet_stream(package, &mi->cabinet[1], mi->source);
return ERROR_FUNCTION_FAILED; if (r != ERROR_SUCCESS)
{
ERR("Failed to extract cabinet stream\n");
return ERROR_FUNCTION_FAILED;
}
} }
} else
else
{
lstrcpyW(mi->source, source_dir);
if (mi->cabinet)
lstrcatW(mi->source, mi->cabinet); lstrcatW(mi->source, mi->cabinet);
} }