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