Package: gv Version: 1:3.7.4-1+b1 Severity: important
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 It appears that when run on files with a long name, gv aborts. The file name here should be ~150 bytes, well under the maximum (255 on ext4). *** buffer overflow detected ***: gv terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x70bcb)[0x7f0feab27bcb] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7f0feabb00b7] /lib/x86_64-linux-gnu/libc.so.6(+0xf71f0)[0x7f0feabae1f0] /lib/x86_64-linux-gnu/libc.so.6(+0xf6552)[0x7f0feabad552] gv(+0x2c595)[0x55f60b964595] gv(+0x3a00e)[0x55f60b97200e] gv(+0x2ba18)[0x55f60b963a18] gv(+0x30a1d)[0x55f60b968a1d] gv(+0x18d07)[0x55f60b950d07] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f0feaad72b1] gv(+0x19c3a)[0x55f60b951c3a] I got a better backtrack running under valgrind: **30866** *** strcpy_chk: buffer overflow detected ***: program terminated ==30866== at 0x4C2E7AC: VALGRIND_PRINTF_BACKTRACE (valgrind.h:6818) ==30866== by 0x4C32F0E: __strcpy_chk (vg_replace_strmem.c:1439) ==30866== by 0x134594: strcpy (string3.h:110) ==30866== by 0x134594: file_getTmpFilename (file.c:148) ==30866== by 0x14200D: psscan (ps.c:553) ==30866== by 0x133A17: doc_scanFile (doc_misc.c:79) ==30866== by 0x138A1C: setup_ghostview (misc.c:915) ==30866== by 0x120D06: main (main.c:1238) And even better with gdb: #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58 set = {__val = {0, 3472328296227680304, 3467824696768081952, 3991990709698103840, 3975887029563254374, 3991990507837744742, 8083248238249914416, 3472328296227680288, 2319406834570502192, 7378697628689244208, 3256155514234889783, 7378645952437315127, 3255383588231721057, 3472328296227676272, 3472339291342909488, 2314885530818457632}} pid = tid = #1 0x00007ffff692f40a in __GI_abort () at abort.c:89 save_stage = 2 act = {__sigaction_handler = {sa_handler = 0x2020202020202020, sa_sigaction = 0x2020202020202020}, sa_mask = {__val = {7795484802351636512, 3917909816998060649, 3276497845987585332, 3615656491663847015, 3966104962340237870, 7306639833582429798, 7378697426660503600, 3472328529065424742, 3472310978873881120, 3467824696600309808, 729636054439574064, 7234582441407964727, 7378645706714656869, 3472387902693336678, 3467895053655089200, 140737488342064}}, sa_flags = 57, sa_restorer = 0x7fffffffcc30} sigs = {__val = {32, 0 }} #2 0x00007ffff696bbd0 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7ffff6a5f19f "*** %s ***: %s terminated\n") at ../sysdeps/posix/libc_fatal.c:175 ap = {{gp_offset = 32, fp_offset = 32767, overflow_arg_area = 0x7fffffffcc40, reg_save_area = 0x7fffffffcbd0}} fd = 5 on_2 = list = nlist = cp = written = #3 0x00007ffff69f40b7 in __GI___fortify_fail (msg=msg@entry=0x7ffff6a5f136 "buffer overflow detected") at fortify_fail.c:30 No locals. #4 0x00007ffff69f21f0 in __GI___chk_fail () at chk_fail.c:28 No locals. #5 0x00007ffff69f1552 in __strcpy_chk (dest=0x7fffffffcda0 "", src=0x555555833790 "/home/anthony/Filing/.git/annex/objects/9j/jF/SHA512E-s335147--6ea0bee9e192016ff621417aaac619dc04cb10a712703848b719a35961ae9e9f1979ebe06485eb9e2070b0d67c3cfe9ffae3ac1af760fe45a0c8f3a4a68c167d.pdf/SHA5"..., destlen=256) at strcpy_chk.c:30 len = #6 0x0000555555580595 in strcpy (__src=0x555555833790 "/home/anthony/Filing/.git/annex/objects/9j/jF/SHA512E-s335147--6ea0bee9e192016ff621417aaac619dc04cb10a712703848b719a35961ae9e9f1979ebe06485eb9e2070b0d67c3cfe9ffae3ac1af760fe45a0c8f3a4a68c167d.pdf/SHA5"..., __dest=0x7fffffffcda0 "") at /usr/include/x86_64-linux-gnu/bits/string3.h:110 No locals. #7 file_getTmpFilename (baseDirectory=0x5555557eea70 "/tmp/", baseDirectory@entry=0x0, baseFilename=baseFilename@entry=0x555555833790 "/home/anthony/Filing/.git/annex/objects/9j/jF/SHA512E-s335147--6ea0bee9e192016ff621417aaac619dc04cb10a712703848b719a35961ae9e9f1979ebe06485eb9e2070b0d67c3cfe9ffae3ac1af760fe45a0c8f3a4a68c167d.pdf/SHA5"..., filed=filed@entry=0x0) at file.c:148 tempFilename = "h\341\377\367\377\177\000\000\300\314\377\377\377\177\000\000\062lUUUU\000\000\250\275\360\273\000\000\000\000\377\377\377\377\000\000\000\000k\213\071\376\000\000\000\000\370x\220\366\377\177\000\000\350\071\374\367\377\177\000\000`_\220\366\377\177\000\000\350\071\374\367\377\177\000\000\377\377\377\377\000\000\000\000\060\020\000\000\000\000\000\000 '\220\366\377\177\000\000\350\071\374\367\377\177\000\000\b\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000c\000\000\000o", '\000' , "\020\025|UUU\000\000c\337YUUU\000\000\020I\203UUU\000\000\000*\203UUU\000\000\220\067\203UUU\000\000\004\000\000\000\000\000\000\000"... tmpNameBuf = '\000' , '-' , 'P' , '\000' , "\377\377\000\377\377\377\377\377\377\377", '\000' , "\020\000\000\000\000\000\000\000\002", '\000' , "p\000\000\000\020I\203UUU\000\000\000\000\000\000\000\000\000\000w\000\000\000|\000\000\000\003\000\000\000\000\000\000\000\000;\311\366\377\177\000\000\020I\203UUU\000\000"... tmpName = tmpExt = pos = len = 4 #8 0x000055555558e00e in psscan (fileP=0x5555557ca7a8 , filename=0x555555833620 "/home/anthony/Filing/.git/annex/objects/9j/jF/SHA512E-s335147--6ea0bee9e192016ff621417aaac619dc04cb10a712703848b719a35961ae9e9f1979ebe06485eb9e2070b0d67c3cfe9ffae3ac1af760fe45a0c8f3a4a68c167d.pdf/SHA5"..., filename_raw=0x555555833790 "/home/anthony/Filing/.git/annex/objects/9j/jF/SHA512E-s335147--6ea0bee9e192016ff621417aaac619dc04cb10a712703848b719a35961ae9e9f1979ebe06485eb9e2070b0d67c3cfe9ffae3ac1af760fe45a0c8f3a4a68c167d.pdf/SHA5"..., filename_dscP=0x5555557ca250 , cmd_scan_pdf=cmd_scan_pdf@entry=0x555555832410 "gs -P- -dSAFER -dDELAYSAFER -dNODISPLAY -dQUIET -sPDFname=%s -sDSCname=%s %s pdf2dsc.ps -c quit", filename_uncP=filename_uncP@entry=0x5555557ca418 , cmd_uncompress=0x0, scanstyle=1, gv_gs_safeDir=1) at ps.c:553 retval = 0x0 tempfile = 0x0 filename_dsc = dscpos = cmd = "H\006\374\367\377\177\000\000\026\000\000\000\000\000\000\000\060\321\377\377\000\000\000\000p\320\377\377\377\177\000\000@\321\377\377", '\000' , "\300\344\377\367\377\177\000\000@\321\377\377\377\177\000\000\000\000\000\000\000\000\000\000\001", '\000' , "h\321\377\377\377\177\000\000q.\336\367\377\177\000\000\004", '\000' , "\001", '\000' , "\001\000\000\000\000\000\000\000h\341\377\367\377\177\000\000[\000\000\000n", '\000' , "\300\344\377\367\377\177\000\000\260\320\377\377\377\177\000\000\000"... old_umask = tmp_filename = tmpfd = tmp_fd = -145879120 quoted_filename = quoted_filename_dsc = pdfpos = s = "\200\001|UUU\000\000\320\322\377\377\377\177\000\000\260\322\377\377\377\177\000\000\000\321\335U\f:\351\211\060\003\203UUU\000\000\000\000\000\000\000\000\000\000\060\003\203UUU\000\000\260\063\200UUU\000\000\200\001|UUU\000\000\320\322\377\377\377\177\000\000\260\322\377\377\377\177\000\000 PP\367\377\177\000\000", '\377' , "\000\000\000\000\000\000\000\000\377\377\377\377\377\377\377", '\000' , "#\004\000\000\000\000\000\000\254\322\377\377\377\177\000\000\320\322\377\377\377\177\000\000\000\321\335U\f:\351\211\060\003\203UUU\000\000\060\003\203UUU\000\000\320\322\377\377\377\177\000\000"... file = doc = bb_set = 0 pages_set = 0 page_order_set = 0 orientation_set = 0 page_bb_set = 0 page_media_set = 0 preread = i = 32767 p = maxpages = 0 nextpage = 1 thispage = ignore = 0 label = line = 0x555555834910 "%PDF-1.4\n" position = 0 beginsection = line_len = 9 section_len = next_char = 0x7ffff74e0fb0 "" cp = dmp = fd = 0x555555832a00 respect_eof = 0 ignore_dsc = 0 b = "%PD" #9 0x000055555557fa18 in doc_scanFile (fPP=, docP=0x5555557ca1e0 , filename=, filename_raw=, filename_dscP=, cmd_scan_pdf=cmd_scan_pdf@entry=0x555555832410 "gs -P- -dSAFER -dDELAYSAFER -dNODISPLAY -dQUIET -sPDFname=%s -sDSCname=%s %s pdf2dsc.ps -c quit", filename_uncP=0x5555557ca418 , cmd_uncompress=0x5555558036b0 "gzip -d -c %s > %s", scanstyle=1, gv_gs_safeDir=1) at doc_misc.c:79 d = 0x0 i = ret = 0 #10 0x0000555555584a1d in setup_ghostview () at misc.c:915 tmp = 0x555555832410 "gs -P- -dSAFER -dDELAYSAFER -dNODISPLAY -dQUIET -sPDFname=%s -sDSCname=%s %s pdf2dsc.ps -c quit" src = 0x555555803566 "" dest = spaceFound = args = {{name = 0xffffffff00000000 , value = -1}, {name = 0x0, value = 0}, {name = 0x0, value = 0}, {name = 0x0, value = 0}, {name = 0x0, value = 0}, {name = 0xffffffff00000000 , value = -1}, {name = 0x0, value = 0}, {name = 0x0, value = 0}, {name = 0x0, value = 93824992500720}, {name = 0x0, value = 140737330208454}} n = oldtoc_entry_length = 0 toc_length = tocp = bitmap = label = #11 0x000055555556cd07 in main (argc=, argv=0x7fffffffe1f8) at main.c:1238 cont_child = {0x5555558134c0, 0x55555581d8c0, 0x55555581f240, 0x555555820720, 0x555555821810, 0x555555821ad0, 0x555555821f60, 0x555555824120, 0x555555824a70, 0x555555825620, 0x555555825c30, 0x555555825ee0, 0x555555826190, 0x555555827450, 0x5555558276c0, 0x555555827930, 0x555555827ba0, 0x555555827e10, 0x555555828080, 0x555555828310, 0x555555828600, 0x555555828a20, 0x555555828e30, 0x555555829500, 0x55555582a290, 0x55555582f310, 0x55555582f680, 0x7ffff7de2124 , 0x1, 0x3, 0x7ffff7ffe700, 0x7ffff7ffa1a8, 0x7ffff7ffa2b0, 0x7ffff7de2963 , 0x3, 0x7ffff7ffa2b0, 0x7ffff7ffe700, 0x7fffffffdc78, 0x7fffffffdc74, 0x7fffffffdf28, 0x7ffff6a5dc15, 0x7ffff7de2124 , 0x7fffffffdc78, 0x1eb, 0x7ffff7fc39e8, 0x7ffff68fed90, 0x7ffff690c038, 0x7ffff7de2963 , 0x1eb, 0x7ffff690c038} cont_child_num = 27 maximum_width = maximum_height = n = 9 dim_forced = args = {{name = 0x55555559b98b "interpreter", value = 93824994961200}, {name = 0x55555559b983 "safeDir", value = 1}, {name = 0x55555559c6b7 "safer", value = 1}, {name = 0x55555559c706 "quiet", value = 1}, {name = 0x5555555b50c3 "infoVerbose", value = 1}, {name = 0x5555555b508e "useBackingPixmap", value = 1}, {name = 0x5555555b514d "arguments", value = 93824995046992}, {name = 0x55555559b92d "lxdpi", value = 53957}, {name = 0x55555559b93f "lydpi", value = 53914}, {name = 0x7fffffffd9d0 "\216P[UUU", value = 140737351943412}, {name = 0x7ffff7bb5370 "\001", value = 140737351934175}, {name = 0x7ffff7fc43c0 "", value = 140737353890280}, {name = 0x0, value = 0}, {name = 0x0, value = 140737354098848}, {name = 0x7ffff7fc19e0 "", value = 140737353890280}, {name = 0x0, value = 140737488346912}, {name = 0x7fffffffdf1f "", value = 140737488345708}, {name = 0x0, value = -1088421888}, {name = 0xdf30666b7c96d8 , value = 140737354093776}, {name = 0x7fffffffdbd0 "\003", value = 140737349753005}} number = c = quit - -- System Information: Debian Release: 9.0 APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'testing'), (500, 'stable'), (130, 'unstable'), (120, 'experimental'), (1, 'experimental-debug') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system) Versions of packages gv depends on: ii ghostscript-x 9.20~dfsg-2 ii libc6 2.24-9 ii libx11-6 2:1.6.4-3 ii libxinerama1 2:1.1.3-1+b3 ii libxmu6 2:1.1.2-2 ii libxt6 1:1.1.5-1 ii xaw3dg 1.5+E-18.2 Versions of packages gv recommends: ii xaw3dg 1.5+E-18.2 gv suggests no packages. - -- no debconf information