Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unsquashfs segfault on 64bit machines #121

Open
GoogleCodeExporter opened this issue May 30, 2015 · 3 comments
Open

unsquashfs segfault on 64bit machines #121

GoogleCodeExporter opened this issue May 30, 2015 · 3 comments

Comments

@GoogleCodeExporter
Copy link

Using binwalk with the -e option in order to extract an squashfs ends up in 
segmentation fault of a tool inside FMK.

Working with 
http://212.166.190.34/zonadescargas/AI_VA_DD_HG556aV100R001C10B077.zip

$ binwalk -e HG556aV100R001C10B077.bin -vv

Scan Time:     2013-11-12 09:06:36
Signatures:    212
Target File:   HG556aV100R001C10B077.bin
MD5 Checksum:  45c8569283fa78cd5033c2f55651baca

DECIMAL     HEX         DESCRIPTION
--------------------------------------------------------------------------------
-----------------------------------
  File "./src/binwalk-1.0/src/bin/binwalk-script", line 14
    print "Progress: %.2f%% (%d / %d)\n" % (((float(bwalk.total_scanned) / float(bwalk.scan_length)) * 100), bwalk.total_scanned, bwalk.scan_length)
                                       ^
SyntaxError: invalid syntax
Attempting to extract SquashFS .X file system...


Trying ./src/squashfs-2.1-r2/unsquashfs-lzma... 
created 80 files
created 75 directories
created 80 symlinks
created 0 devices
created 0 fifos

Trying ./src/squashfs-2.1-r2/unsquashfs... 
created 80 files
created 75 directories
created 80 symlinks
created 0 devices
created 0 fifos

Trying ./src/squashfs-3.0/unsquashfs-lzma... 
Trying ./src/squashfs-3.0/unsquashfs... 
Trying ./src/squashfs-3.0-lzma-damn-small-variant/unsquashfs-lzma... 
Trying ./src/others/squashfs-2.0-nb4/unsquashfs... 
/opt/firmware-mod-kit/unsquashfs_all.sh: line 38:  2917 Segmentation fault      
(core dumped) $unsquashfs $DEST $IMG 2> /dev/null
File system sucessfully extracted!
MKFS="./src/others/squashfs-2.0-nb4/mksquashfs"
256         0x100       Squashfs filesystem, big endian, version 2.0, size: 
10363625 bytes, 1195 inodes, blocksize: 8192 bytes, created: Sun Jun  3 
23:05:46 2012 

As it turns out, this only happens in 64bit machines context, running perfectly 
on 32bit ones.

If you are not willing to debug and fix this beware that I will attempt to when 
I have more time, so please don't mark instantaniously as wont fix.

Thanks in advance.

Original issue reported on code.google.com by [email protected] on 16 Nov 2013 at 3:35

@GoogleCodeExporter
Copy link
Author

Valgrind has tracked this down to the OutWindowCopyBackBlock function, which is 
a "BRCM modification" in the WindowOut.h file (I've never seen good code from 
Broadcom).

Specifically it is performing an invalid read on a pointer address that is not 
mapped in memory. The invalid address on my 64 bit machine is 0x010541D087, 
while it appears that this address should be 0x0541D087. That high byte (0x01) 
is outside the range of a 32-bit address, which is probably why this works fine 
in 32-bit environments.

Still looking in to the specific cause and a fix.

Original comment by [email protected] on 26 Nov 2013 at 3:41

  • Changed state: Started

@GoogleCodeExporter
Copy link
Author

Any improvement here?

Thanks for your time.

Original comment by [email protected] on 3 Jan 2014 at 8:10

@GoogleCodeExporter
Copy link
Author

I meet the same problem. I run archlinux 64bit in VM virtual.

Download the file from: www.dd-wrt.com : dd-wrt.v24_std_generic.bin
run the last fmk tools: extract-firmware.sh 

Here is error:


Firmware Mod Kit (extract) 0.99, (c)2011-2013 Craig Heffner, Jeremy Collake

Preparing tools ...
Scanning firmware...
  File "./src/binwalk-1.0/src/bin/binwalk-script", line 14
    print "Progress: %.2f%% (%d / %d)\n" % (((float(bwalk.total_scanned) / float(bwalk.scan_length)) * 100), bwalk.total_scanned, bwalk.scan_length)
                                       ^
SyntaxError: invalid syntax
sort: cannot read: /home/huatian/firmware_mod_kit/work/logs/binwalk.log: No 
such file or directory
Extracting 0 bytes of  header image at offset 0
ERROR: No supported file system found! Aborting...

Original comment by [email protected] on 1 Feb 2014 at 2:37

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant