bugGNU Enscript - Bugs: bug #31012, enscript seg faults while...


bug #31012: enscript seg faults while processing the config file

Submitted by:  Bruce Korb <bkorb>
Submitted on:  Fri 10 Sep 2010 11:09:44 PM UTC  
Category:  None Severity:  3 - Normal
Item Group:  None Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed

Add a New Comment(Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


Sun 10 Jul 2011 01:26:45 AM UTC, comment #4:

I have opened bug #33738 to keep track of the fact that Enscript should never break --help and --version. Unfortunately, I think main.c needs some quite extensive refactoring to make this happen.

(Closing this bug.)

Tim Retout <diocles>
Project Member
Wed 15 Sep 2010 08:52:50 PM UTC, comment #3: fixes this issue. However, you probably should
process --help and --version args before processing
config files, and perhaps describe what's wrong with
the config file when you do process it. I did, after all,
read the man page when constructing the file. I read this:

All other lines are option lines and have format:
option [arguments ...].
The following options can be specified:
AcceptCompositeCharacters: bool
Specify whether PostScript font's composite characters are
accepted as printable or if they should be considered as
non-existent. The default value is false (0).

and interpreted it to mean putting the colon after the name
as a value separator. The parser ought to tolerate a colon,
an equal sign or just white space as the name/value separator.

$ enscript --help
enscript:/vmem/bkorb/.enscriptrc:2: missing argument: Media:
$ enscript --version
enscript:/vmem/bkorb/.enscriptrc:2: missing argument: Media:
$ rm -f ~/.enscriptrc ; enscript --version
GNU Enscript [...]

Bruce Korb <bkorb>
Wed 15 Sep 2010 09:21:11 AM UTC, comment #2:

Hi Bruce,

Is it possible for you to check whether this still occurs in enscript This release fixed a segmentation fault when throwing errors in config files, which sounds a lot like the problem you are describing.



Tim Retout <diocles>
Project Member
Fri 10 Sep 2010 11:15:57 PM UTC, comment #1:

Sorry, wrong listing:

(gdb) list
251 token2 = GET_TOKEN (NULL);
253 name = token2;
255 token2 = GET_TOKEN (NULL);
256 CHECK_TOKEN (); <<<====
257 w = atoi (token2);
259 token2 = GET_TOKEN (NULL);

enscript-1.6.5, by the way.

Bruce Korb <bkorb>
Fri 10 Sep 2010 11:09:44 PM UTC, original submission:

Even if the config file contains invalid text, it should
not fault:

Program received signal SIGSEGV, Segmentation fault.
0x00000037330797c0 in strlen () from /lib64/libc.so.6
(gdb) bt
#0 0x00000037330797c0 in strlen () from /lib64/libc.so.6
#1 0x0000003733046b69 in vfprintf () from /lib64/libc.so.6
#2 0x0000003733047f36 in buffered_vfprintf () from /lib64/libc.so.6
#3 0x0000003733042a1c in vfprintf () from /lib64/libc.so.6
#4 0x000000373304d358 in fprintf () from /lib64/libc.so.6
#5 0x000000000040fa2b in read_config (path=0x7fffe6819d38 "/vmem/bkorb",
file=0x41c7c8 ".enscriptrc") at ../../src/util.c:256
#6 0x00000000004026f4 in main (argc=2, argv=0x7fffe68189a8)
at ../../src/main.c:1133
(gdb) f 5
#5 0x000000000040fa2b in read_config (path=0x7fffe6819d38 "/vmem/bkorb",
file=0x41c7c8 ".enscriptrc") at ../../src/util.c:256
(gdb) list
406 ul_angle_p = 1;
407 }
408 else if (MATCH (token, "UnderlayFont:"))
409 {
410 token2 = GET_TOKEN (NULL);
412 if (!parse_font_spec (token2, &ul_font, &ul_ptsize, NULL))
413 CFG_FATAL ((stderr, _("malformed font spec: %s"), token2));
414 }
415 else if (MATCH (token, "UnderlayGray:"))
$ cat ~/.enscriptrc
Printer: hp8000-duplex
Media: letter

Bruce Korb <bkorb>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by diocles (Posted a comment)
  • -email is unavailable- added by bkorb (Submitted the item)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-07-10 diocles StatusNone => Fixed
        Open/ClosedOpen => Closed

    Back to the top

    Powered by Savane 3.3