Invalid pointer dereference in print_suminfo
The attached file, badptr.msi, causes msiinfo
to crash with an invalid pointer dereference:
$ gdb --args msiinfo suminfo badptr.msi
(gdb) run
Starting program: /usr/bin/msiinfo suminfo badptr.msi
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
** (msiinfo:21962): CRITICAL **: 15:05:37.467: string table corrupt?
** (msiinfo:21962): CRITICAL **: 15:05:37.467: string table load failed! (000004db != 00000000), please report
Title: Installation Database
Keywords: Installer
Comments: This installer database contains the logic and data required to install (null).
Template: Intel;1033
Revision number (UUID): {B875D335-7944-4276-80B3-EE9B5B787D43}
Program received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:96
96 ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
(gdb) bt
#0 0x00007ffff7bb11a7 in __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:96
#1 0x00007ffff7aa69ef in _IO_vfprintf_internal
(s=0x7ffff7c11760 <_IO_2_1_stdout_>, format=format@entry=0x555555558034 "%s: %s\n", ap=ap@entry=0x7fffffffdc20)
at vfprintf.c:1638
#2 0x00007ffff7b5d39c in ___printf_chk (flag=flag@entry=1, format=format@entry=0x555555558034 "%s: %s\n") at printf_chk.c:35
#3 0x00005555555567ab in printf (__fmt=0x555555558034 "%s: %s\n") at /usr/include/x86_64-linux-gnu/bits/stdio2.h:107
#4 0x00005555555567ab in print_suminfo
(si=si@entry=0x55555558b000 [LibmsiSummaryInfo], prop=prop@entry=12, name=name@entry=0x5555555580dd "Created")
at ../tools/msiinfo.c:268
#5 0x0000555555556a31 in cmd_suminfo (cmd=<optimized out>, argc=<optimized out>, argv=<optimized out>, error=0x7fffffffdd80)
at ../tools/msiinfo.c:320
#6 0x00005555555563af in main (argc=3, argv=0x7fffffffde88) at ../tools/msiinfo.c:770
Forwarded from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871571