Something in a certain QEMU raw image seems to upset lbzip2-2.2. Other images are okay but I could not test another NTFS file system image. The error happens with a small part of the image so I will attach it. Earlier versions of lbzip2 seem to be unaffected. Reproducible: Always Steps to Reproduce: 1. lbzip2 -c hpwin.img >/dev/null Actual Results: lbzip2: /var/tmp/portage/app-arch/lbzip2-2.2/work/lbzip2-2.2/src/encode.c:794: generate_initial_trees: Assertion `a < b' failed. Expected Results: No news are good news. emerge --info Portage 2.1.11.9 (default/linux/amd64/10.0, gcc-4.5.4, glibc-2.15-r2, 3.4.9-gentoo x86_64) ================================================================= System uname: Linux-3.4.9-gentoo-x86_64-Intel-R-_Core-TM-_i5_CPU_M_450_@_2.40GHz-with-gentoo-2.1 Timestamp of tree: Sat, 22 Sep 2012 02:45:01 +0000 ccache version 3.1.7 [enabled] app-shells/bash: 4.2_p37 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.3-r2, 3.2.3 dev-util/ccache: 3.1.7 dev-util/cmake: 2.8.8-r3 dev-util/pkgconfig: 0.27.1 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.10.4 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.10.3, 1.11.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.4 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers) sys-libs/glibc: 2.15-r2 Repositories: gentoo alexxy armagetron x-aross bangert benf betagarden bibletime chtekk-apps chutzpah dagger x-deathwing00 dertobi123 dirtyepic dotnet drizzt-overlay emacs eva eyolfson Falco flameeyes-overlay foo-overlay gamerlay-stable genstef gpe halcy0n hawking hwoarang iElectric java-overlay je_fro jmbsvicetto dev-jokey kerberos kolab kork kvm laurentb leio-personal x-lila-theme loki_val lordvan lorelei-overlay ogo-lu_zero maekke maggu2810-overlay matsuu Menelkir mrpouet-s-overlay neurogeek neuvoo nikai nuteater nx openrc pchrist pcsx2 pd-overlay piczu postgresql-testing proaudio purak ramereth raw rbu remi overlay-dev-robbat2 ruby scarabeus science x-seemant smithdanea sochotnicky sping steev swegener toolchain x-trapni vdr-testing voip webapp-experimental wirelay wish wrobel wschlich wschlich-testing xgr xhub x11 yporti DuPol voyageur games kde-sunset sunrise eatnumber1 tante multimedia roslin overlay-dev-blueness mv vmware Sysutils ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA Broadcom AdobeFlash-10.1 AdobeFlash-10.3 Intel-SDP" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe -floop-interchange -floop-strip-mine -floop-block" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=native -pipe -floop-interchange -floop-strip-mine -floop-block" DISTDIR="/usr/src/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs ccache distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/" LANG="en_US.UTF8" LC_ALL="de_DE.UTF8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="de en_US en" MAKEOPTS="-j4" PKGDIR="/usr/src/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/var/db/portage" PORTDIR_OVERLAY="/var/db/layman/alexxy /var/db/layman/armagetron /var/db/layman/aross /var/db/layman/bangert /var/db/layman/benf /var/db/layman/betagarden /var/db/layman/bibletime /var/db/layman/chtekk-apps /var/db/layman/chutzpah /var/db/layman/dagger /var/db/layman/deathwing00 /var/db/layman/dertobi123 /var/db/layman/dirtyepic /var/db/layman/dotnet /var/db/layman/drizzt-overlay /var/db/layman/emacs /var/db/layman/eva /var/db/layman/eyolfson /var/db/layman/falco /var/db/layman/flameeyes-overlay /var/db/layman/foo-overlay /var/db/layman/gamerlay /var/db/layman/genstef /var/db/layman/gpe /var/db/layman/halcy0n /var/db/layman/hawking /var/db/layman/hwoarang /var/db/layman/iElectric /var/db/layman/java-overlay /var/db/layman/je_fro /var/db/layman/jmbsvicetto /var/db/layman/jokey /var/db/layman/kerberos /var/db/layman/kolab /var/db/layman/kork /var/db/layman/kvm /var/db/layman/laurentb /var/db/layman/leio /var/db/layman/lila-theme /var/db/layman/loki_val /var/db/layman/lordvan /var/db/layman/lorelei /var/db/layman/lu_zero /var/db/layman/maekke /var/db/layman/maggu2810-overlay /var/db/layman/matsuu /var/db/layman/menelkir /var/db/layman/mrpouet /var/db/layman/neurogeek /var/db/layman/neuvoo /var/db/layman/nikai /var/db/layman/nuteater /var/db/layman/nx /var/db/layman/openrc /var/db/layman/pchrist /var/db/layman/pcsx2 /var/db/layman/pd-overlay /var/db/layman/piczu /var/db/layman/postgresql-testing /var/db/layman/pro-audio /var/db/layman/purak /var/db/layman/ramereth /var/db/layman/raw /var/db/layman/rbu /var/db/layman/remi /var/db/layman/robbat2 /var/db/layman/ruby /var/db/layman/scarabeus /var/db/layman/science /var/db/layman/seemant /var/db/layman/smithdanea /var/db/layman/sochotnicky /var/db/layman/sping /var/db/layman/steev /var/db/layman/swegener /var/db/layman/toolchain /var/db/layman/trapni /var/db/layman/vdr-testing /var/db/layman/voip /var/db/layman/webapps-experimental /var/db/layman/wirelay /var/db/layman/wish /var/db/layman/wrobel /var/db/layman/wschlich /var/db/layman/wschlich-testing /var/db/layman/xgr /var/db/layman/xhub /var/db/layman/x11 /var/db/layman/yporti /var/db/layman/DuPol /var/db/layman/voyageur /var/db/layman/games /var/db/layman/kde-sunset /var/db/layman/sunrise /var/db/layman/eatnumber1 /var/db/layman/tante /var/db/layman/multimedia /var/db/layman/roslin /var/db/layman/blueness /var/db/layman/mv /var/db/layman/vmware /usr/local/portage" SYNC="rsync://serv.vpn.binarywings.net/gentoo-portage" USE="acl amd64 berkdb bzip2 cli cracklib crypt cups cxx djvu dri fortran gdbm gpm handbook iconv jemalloc mmx mmxext modules mudflap multilib ncurses nls nptl openmp pam pcre pppd readline semantic-desktop session sse sse2 sse3 ssl ssse3 tcpd unicode vaapi xinerama zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authz_host autoindex cache deflate dir expires filter info log_config logio mem_cache mime mime_magic negotiation status unique_id vhost_alias" APACHE2_MPMS="prefork" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DVB_CARDS="usb-dib0700 dibusb-usb2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en_US en" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="vesa intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 325110 [details] The file causing the issue Generated from an NTFS raw image with dd skip=2048 count=256
Created attachment 325132 [details, diff] Proposed patch The bug is caused when the body of a for-loop in a heuristic function is never executed. I don't understand the root cause but changing it to a do-while loop fixes the issue. The patched version passes all of lbzip2's tests (`make check`) and I've also tested it for data corruption against several hundred randomly chosen files on my system (encode with lbzip2, decode with bzip2, cmp for checking). Decoding is not affected.
Lets see what upstream tells us about this bug.
Thank you for the report. As upstream maintainer of lbzip2 I confirm this is a bug in the upstream code. I will fix it as soon as possible. The bug was introduced in version 2.2, so earlier versions shouldn't be affected. Also be careful with the patch proposed in comment #2, it doesn't look correct and may cause other issues.
This is fixed by https://github.com/kjn/lbzip2/commit/57eeee36927f8a40ece1ca06c674e0bd56d0f21f
+*lbzip2-2.2-r1 (12 Jan 2013) + + 12 Jan 2013; Justin Lecher <jlec@gentoo.org> +lbzip2-2.2-r1.ebuild, + +files/lbzip2-2.2-assertion.patch, metadata.xml: + Backport fix from upstream git for Assertion failure, #436382 +