FS#23297 - [testdisk] segfaults after ncurses upgrade to 5.8

Attached to Project: Arch Linux
Opened by Linas (Linas) - Wednesday, 16 March 2011, 17:26 GMT
Last edited by Tobias Powalowski (tpowa) - Thursday, 12 May 2011, 14:55 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No


testdisk (6.11.3-3) works perfectly with ncurses 5.7-4. After upgrade to ncurses 5.8-1, trying to recover the files from a drive gives out a segmentation fault. Recompiling testdisk with debug symbols and running under gdb, it seems to be stuck in an infinite loop (well, there is a message loop in dir_aff_ncurses() at inside dirn.c but there's no progress...).
Downgrading to 5.7-4, it works flawlessly.
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Thursday, 12 May 2011, 14:55 GMT
Reason for closing:  Fixed
Comment by Andrew (DSpider) - Thursday, 24 March 2011, 11:50 GMT
I can confirm that downgrading ncurses fixed PhotoRec (part of the TestDisk package).

On a personal note, v6.11.3 is pretty old now. May 2009. Needs a refresh (and a GUI wouldn't kill anyone, either).
Comment by Greg (dolby) - Thursday, 24 March 2011, 13:16 GMT
Indeed it seems to work at first but the application crashes as some point.

@Andrew: What do you mean by too old? Its the latest released version.
Comment by Corrado Primier (bardo) - Thursday, 24 March 2011, 15:50 GMT
There's a development version (you can find it in AUR as 'testdisk-wip'), but it has the same problem.
Comment by Greg (dolby) - Thursday, 24 March 2011, 20:31 GMT
Maybe someone should contact the developer then: grenier@cgsecurity.org
I dont believe there is a bug tracker.
Comment by Christophe GRENIER (cgrenier) - Monday, 28 March 2011, 07:28 GMT
ncurses 5.8 violates its own API: newwin(0,0,0,0) doesn't create a new full-screen window anymore.
I have uploaded a new 6.12-WIP with a workaround. Patch is visible in the git tree:
Can you test it ?
Comment by Greg (dolby) - Monday, 28 March 2011, 08:07 GMT
Didnt try the patch, but new 6.12-WIP seems to work although i didnt try recovering anything, thank you.
Comment by Corrado Primier (bardo) - Tuesday, 29 March 2011, 11:34 GMT
With the latest WIP, everything seems to work but undeletion.
Comment by Christophe GRENIER (cgrenier) - Tuesday, 29 March 2011, 11:51 GMT
What doesn't work with undeletion ?
Using latest 6.12-WIP and ncurses 5.8, I have successfully undeleted files from FAT32, NTFS and ext2.
Comment by Corrado Primier (bardo) - Tuesday, 29 March 2011, 12:34 GMT
When I select the "undelete" feature and press enter, it freezes while taking one cpu core to 100%. Ok, this could be something different, then, I'm not much of a debugging guy but I recompiled with !strip and this is what I got interrupting the program with a ^C, let me know if there's something more specific I can do:

[ Type ] [ Boot ] [ List ] >[Undelete] [Image Creation] [ Quit ]
File undelete
Program received signal SIGINT, Interrupt.
0x00007ffff702a395 in strcmp () from /lib/libc.so.6
(gdb) where
#0 0x00007ffff702a395 in strcmp () from /lib/libc.so.6
#1 0x0000000000435323 in ntfs_undelete_part ()
#2 0x000000000041cb60 in interface_adv ()
#3 0x0000000000437e6f in menu_disk ()
#4 0x00000000004385fe in do_curses_testdisk ()
#5 0x0000000000438ced in main ()
Comment by Corrado Primier (bardo) - Tuesday, 29 March 2011, 12:50 GMT
Ok, my bad, I stumbled on an iso which took *really* long to analyze, while the others I had are blazing fast. Sorry for the noise, consider the bug fized on my side.
Comment by Greg (dolby) - Thursday, 12 May 2011, 06:59 GMT
6.12 has been released which includes the ncurses 5.8 fixes.