Tue 01 Jun 2010 10:56:37 PM UTC, comment #3:
The segmentation fault is coming from the CFG_FATAL macro in src/util.c. It tries to print out 'fname' as part of the debugging information, but this has been changed in read_config to be a 'Buffer' struct rather than a string now.
(The CFG_FATAL macro is being triggered when there's an option the parser doesn't understand, which I think is fair enough.)
So. Hmm.
I don't particularly like the macro referencing random variables that aren't arguments... but for the moment, I'll make a new macro which uses Buffer objects.
|
Sat 30 Jan 2010 12:15:43 AM UTC, original submission:
I currently have enscript 1.6.1 installed on my x86_64-sun-solaris2.10 workstation.
When building 1.6.5, ever test fails and even the simplest invokation of enscript causes a segfault. It looks like the
fault is coming in the options file parsing for my (1.6.1-era) options file:
$ dbx enscript
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your .dbxrc
Reading enscript
Reading ld.so.1
Reading libintl.so.8.0.2
Reading libc.so.1
Reading libm.so.2
(dbx) run
Running: enscript
(process id 6107)
enscriptsignal SEGV (no mapping at the fault address) in strlen at 0xfffffd7fff274b50
0xfffffd7fff274b50: strlen+0x0020: cmpb $0x0000000000000000,(%rsi)
Current function is read_config
437 CFG_FATAL ((stderr, _("illegal option: %s"), token));
(dbx) where
[1] strlen(0xffffffffffffff76, 0x8a, 0xfffffd7fffdfc9a8, 0x73, 0xfffffffffffffffa, 0x45f678), at 0xfffffd7fff274b50
[2] _ndoprnt(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2d04da
[3] _fprintf(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2d12ba
=>[4] read_config(path = 0x42ec50 "/etc/local/gnu", file = 0x42ec60 "enscript.cfg"), line 437 in "util.c"
[5] main(argc = 1, argv = 0xfffffd7fffdfed88), line 1062 in "main.c"
(dbx) quit
Doing a bit more digging, it looks like the option it's complaining about is
StatesColorModel:
|