Bug#1012258: diffoscope crashes with IndexError: tuple index out of range

Sander van Grieken sander at outrightsolutions.nl
Thu Jun 2 12:20:38 BST 2022


Package: diffoscope
Version: 214
Severity: important
X-Debbugs-Cc: sander at outrightsolutions.nl

Dear Maintainer,

Using diffoscope to compare two files (tar.gz) diffoscope crashes with the
stacktrace below.

The files in question are assets/private.mp3 from two builds of Electrum APK,
which are tar-gzipped file trees containing python code.

Testing out older versions of diffoscope reveals that the problem starts from
diffoscope-187


-- Stacktrace:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/diffoscope/main.py", line 762,
in main
    sys.exit(run_diffoscope(parsed_args))
  File "/usr/local/lib/python3.9/dist-packages/diffoscope/main.py", line 716,
in run_diffoscope
    difference = compare_root_paths(path1, path2)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/compare.py", line 69, in
compare_root_paths
    difference = compare_files(file1, file2)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/compare.py", line 146, in compare_files
    return file1.compare(file2, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 513, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 448, in
_compare_using_details
    details.extend(
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/container.py", line 197, in compare_pair
    difference = compare_files(
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/compare.py", line 146, in compare_files
    return file1.compare(file2, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 513, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 448, in
_compare_using_details
    details.extend(
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/container.py", line 197, in compare_pair
    difference = compare_files(
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/compare.py", line 146, in compare_files
    return file1.compare(file2, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 513, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/utils/file.py", line 414, in
_compare_using_details
    details.extend(self.compare_details(other, source))
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/python.py", line 49, in compare_details
    describe_pyc(self.path),
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/python.py", line 63, in describe_pyc
    return "\n".join(parse_pyc(f))
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/python.py", line 80, in parse_pyc
    yield from show_code(code)
  File "/usr/local/lib/python3.9/dist-
packages/diffoscope/comparators/python.py", line 93, in show_code
    dis.disassemble(code, file=s)
  File "/usr/lib/python3.9/dis.py", line 369, in disassemble
    _disassemble_bytes(co.co_code, lasti, co.co_varnames, co.co_names,
  File "/usr/lib/python3.9/dis.py", line 401, in _disassemble_bytes
    for instr in _get_instructions_bytes(code, varnames, names,
  File "/usr/lib/python3.9/dis.py", line 347, in _get_instructions_bytes
    argval = cmp_op[arg]
IndexError: tuple index out of range


-- System Information:
Debian Release: bookworm/sid
  APT prefers testing
  APT policy: (750, 'testing'), (700, 'stable'), (600, 'unstable'), (500, 'stable-security')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.17.5+ (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages diffoscope depends on:
pn  diffoscope-minimal  <none>

Versions of packages diffoscope recommends:
ii  abootimg                         0.6-1+b2
ii  acl                              2.3.1-1
ii  androguard                       3.4.0~a1-2
ii  apksigner                        31.0.2-1
ii  apktool                          2.6.1+dfsg.1-2
ii  binutils-multiarch               2.38-4
ii  bzip2                            1.0.8-5
ii  caca-utils                       0.99.beta19-3
ii  colord                           1.4.6-1
ii  db-util                          5.3.1+nmu1
ii  device-tree-compiler             1.6.1-1
ii  docx2txt                         1.4-5
ii  e2fsprogs                        1.46.5-2
ii  enjarify                         1:1.0.3-5
ii  ffmpeg                           10:4.4.1-dmo6
ii  fontforge-extras                 1:20201107~dfsg-4+b1
ii  fp-utils                         3.2.2+dfsg-11
ii  fp-utils-3.2.2 [fp-utils]        3.2.2+dfsg-11
ii  genisoimage                      9:1.1.11-3.2
ii  gettext                          0.21-6
ii  ghc                              8.8.4-3
ii  ghostscript                      9.56.1~dfsg-1
ii  giflib-tools                     5.2.1-2.4
ii  gnumeric                         1.12.52-1
ii  gnupg                            2.2.35-2
ii  gnupg-utils                      2.2.35-2
ii  hdf5-tools                       1.10.7+repack-4
ii  imagemagick                      8:6.9.11.60+dfsg-1.3+b2
ii  imagemagick-6.q16 [imagemagick]  8:6.9.11.60+dfsg-1.3+b2
ii  jsbeautifier                     1.14.3-1
ii  libarchive-tools                 3.6.0-1
ii  libxmlb-dev                      0.3.8-1
ii  llvm                             1:13.0-54
ii  lz4 [liblz4-tool]                1.9.3-2
ii  mono-utils                       6.8.0.105+dfsg-3.2
ii  ocaml-nox                        4.13.1-3
ii  odt2txt                          0.5-7
ii  oggvideotools                    0.9.1-6
ii  openjdk-11-jdk [java-sdk]        11.0.14.1+1-1
ii  openjdk-8-jdk [java-sdk]         8u332-ga-1
ii  openssh-client                   1:9.0p1-1
ii  openssl                          1.1.1o-1
ii  pgpdump                          0.34-1
ii  poppler-utils                    22.02.0-3
pn  procyon-decompiler               <none>
ii  python3-argcomplete              2.0.0-1
ii  python3-binwalk                  2.3.3+dfsg1-2
ii  python3-debian                   0.1.44
ii  python3-defusedxml               0.7.1-1
pn  python3-guestfs                  <none>
ii  python3-jsondiff                 1.3.1-2
ii  python3-pdfminer                 20220319+dfsg-1
ii  python3-progressbar              2.5-2
ii  python3-pypdf2                   1.26.0-4
ii  python3-pyxattr                  0.7.2-2
ii  python3-rpm                      4.17.0+dfsg1-4
ii  python3-tlsh                     3.4.4+20151206-1.4+b1
ii  r-base-core                      4.2.0-1+b1
ii  radare2                          5.5.0+dfsg-1
ii  rpm2cpio                         4.17.0+dfsg1-4
ii  sng                              1.1.0-4
ii  sqlite3                          3.38.5-1
ii  squashfs-tools                   1:4.5.1-1
ii  tcpdump                          4.99.1-4
ii  u-boot-tools                     2022.04+dfsg-2
ii  unzip                            6.0-26
ii  vim-common                       2:8.2.4793-1
ii  wabt                             1.0.29-1
ii  xmlbeans                         4.0.0-1
ii  xxd                              2:8.2.4793-1
ii  xz-utils                         5.2.5-2.1
ii  zip                              3.0-12
ii  zstd                             1.5.2+dfsg-1

Versions of packages diffoscope suggests:
ii  libjs-jquery  3.6.0+dfsg+~3.5.13-1



More information about the Reproducible-builds mailing list