Hi,

Thanks for the great bug report! If you have the time, please report it
in the SourceForge tracker:

http://sourceforge.net/tracker/?limit=10&func=&group_id=30550&atid=399601&assignee=&status=&category=&artgroup=&keyword=&submitter=&artifact_id=&assignee=&status=&category=667878&artgroup=&submitter=&keyword=&artifact_id=&submit=Filter

I have applied the patch, thanks!

I'm thinking of moving version identification and affected offsets to
various data structures to a configuration file to avoid recompiling for
things like this. ..


Best regards,

David Eriksson, http://www.divideandconquer.se/


On Thu, 2009-07-16 at 17:44 -0400, Pavel Roskin wrote:
> Hello!
> 
> I was trying to unpack the driver for abit WLP-01 downloaded from
> http://file.abit.com.tw/pub/download/driver2/airpace/wifi_U1011_20070511.zip
> 
> I tries unshield 0.5.1 first, then version 0.6.  Both dumped core.
> Debugging showed that header->major_version was determined as 0, which
> lead to self->file_group_count being read from a wrong location.
> self->file_group_count was more than MAX_FILE_GROUP_COUNT, which lead to
> unshield_component_new() calling abort().
> 
> This is what the debugging output shows:
> 
> $ unshield -D3 x data1.cab 
> [unshield_read_headers:226] Reading header from .hdr file 1.
> [unshield_read_headers:281] Version 0x020004b0 handled as major version 0
> [unshield_get_cab_descriptor:81] Cabinet descriptor: 00003162 0000146f 
> 0000146f 0000000c
> [unshield_get_cab_descriptor:83] Directory count: 3
> [unshield_get_cab_descriptor:84] File count: 53
> Aborted (core dumped)
> 
> The major version is read from this digit:
> 
> 0x020004b0
>       ^
> 
> If I change the sources to assume version 9, I can successfully unpack
> the archive.
> 
> It looks like the actual version of the software is 12 (the version of
> the archive format may be different)
> 
> $ strings setup.exe |grep -i shield
> http://www.installshield.com/isetup/ProErrorCentral.asp?ErrorCode=%d : 
> 0x%x&ErrorInfo=%s
> InstallShield.OCISetupPlayer12.12
> InstallShield.OCISetupPlayer12
> InstallShield
> InstallShield Silent
> InstallShield\ISEngine12.0
> SOFTWARE\InstallShield\Cryptography\Trust
> (c) Copyright 2004 InstallShield Software Corporation (All Rights Reserved)
> InstallShieldPendingOperation
> InstallShield Setup Player
>     name="InstallShield.Setup"
> <description>InstallShield.Setup</description>
> 
> I suggest applying this patch as a workaround.
> 
> --- lib/libunshield.c
> +++ lib/libunshield.c
> @@ -271,6 +271,9 @@ static bool unshield_read_headers(Unshie
>        
>        header->major_version = (header->common.version >> 12) & 0xf;
>  
> +      if (header->common.version == 0x020004b0)
> +        header->major_version = 9;
> +
>  #if 0
>        if (header->major_version < 5)
>          header->major_version = 5;

-- 


------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
SynCE-Devel mailing list
SynCE-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel

Reply via email to