iFix segfault when parsing config file. - enscript - GNU Enscript Err thinkerwim.openbsd.amsterdam 70 hgit clone git://thinkerwim.org/enscript.git URL:git://thinkerwim.org/enscript.git thinkerwim.org 70 1Log /git/enscript/log.gph thinkerwim.org 70 1Files /git/enscript/files.gph thinkerwim.org 70 1Refs /git/enscript/refs.gph thinkerwim.org 70 1README /git/enscript/file/README.gph thinkerwim.org 70 1LICENSE /git/enscript/file/COPYING.gph thinkerwim.org 70 i--- Err thinkerwim.openbsd.amsterdam 70 1commit 3bd214defc9881f9e3ddf2dad34c7337aee3a60a /git/enscript/commit/3bd214defc9881f9e3ddf2dad34c7337aee3a60a.gph thinkerwim.org 70 1parent 5c9325447a7405156570a93e701d4970e77d5f72 /git/enscript/commit/5c9325447a7405156570a93e701d4970e77d5f72.gph thinkerwim.org 70 hAuthor: Tim Retout URL:mailto:diocles@gnu.org thinkerwim.org 70 iDate: Wed, 2 Jun 2010 00:05:56 +0100 Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iFix segfault when parsing config file. Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iSigned-off-by: Tim Retout Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iDiffstat: Err thinkerwim.openbsd.amsterdam 70 i M ChangeLog | 9 +++++++++ Err thinkerwim.openbsd.amsterdam 70 i M src/util.c | 11 ++++++++--- Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i2 files changed, 17 insertions(+), 3 deletions(-) Err thinkerwim.openbsd.amsterdam 70 i--- Err thinkerwim.openbsd.amsterdam 70 1diff --git a/ChangeLog b/ChangeLog /git/enscript/file/ChangeLog.gph thinkerwim.org 70 i@@ -1,3 +1,12 @@ Err thinkerwim.openbsd.amsterdam 70 i+2010-06-02 Tim Retout Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i+ Fix Savannah bug #28769 (segfault when parsing config file). Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i+ * src/util.c (CFG_FATAL): Call buffer_ptr on &fname to get Err thinkerwim.openbsd.amsterdam 70 i+ configuration filename. Err thinkerwim.openbsd.amsterdam 70 i+ * src/util.c (read_config): Delay buffer_uninit call on fname Err thinkerwim.openbsd.amsterdam 70 i+ until return points. Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i 2010-03-17 Juergen Daubert Err thinkerwim.openbsd.amsterdam 70 i * src/main.c: Fix ngettext calls to use '1' explicitly. Fixes Err thinkerwim.openbsd.amsterdam 70 i Savannah bug #29198. Err thinkerwim.openbsd.amsterdam 70 1diff --git a/src/util.c b/src/util.c /git/enscript/file/src/util.c.gph thinkerwim.org 70 i@@ -30,7 +30,7 @@ Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i #define CFG_FATAL(body) \ Err thinkerwim.openbsd.amsterdam 70 i do { \ Err thinkerwim.openbsd.amsterdam 70 i- fprintf (stderr, "%s:%s:%d: ", program, fname, line); \ Err thinkerwim.openbsd.amsterdam 70 i+ fprintf (stderr, "%s:%s:%d: ", program, buffer_ptr(&fname), line); \ Err thinkerwim.openbsd.amsterdam 70 i fprintf body; \ Err thinkerwim.openbsd.amsterdam 70 i fprintf (stderr, "\n"); \ Err thinkerwim.openbsd.amsterdam 70 i fflush (stderr); \ Err thinkerwim.openbsd.amsterdam 70 i@@ -108,10 +108,13 @@ read_config (char *path, char *file) Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i fp = fopen (buffer_ptr (&fname), "r"); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- buffer_uninit (&fname); Err thinkerwim.openbsd.amsterdam 70 i+ /* We wait to uninit the buffer so that CFG_FATAL can use it. */ Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i if (fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i- return 0; Err thinkerwim.openbsd.amsterdam 70 i+ { Err thinkerwim.openbsd.amsterdam 70 i+ buffer_uninit (&fname); Err thinkerwim.openbsd.amsterdam 70 i+ return 0; Err thinkerwim.openbsd.amsterdam 70 i+ } Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i while (fgets (buf, sizeof (buf), fp)) Err thinkerwim.openbsd.amsterdam 70 i { Err thinkerwim.openbsd.amsterdam 70 i@@ -436,6 +439,8 @@ read_config (char *path, char *file) Err thinkerwim.openbsd.amsterdam 70 i else Err thinkerwim.openbsd.amsterdam 70 i CFG_FATAL ((stderr, _("illegal option: %s"), token)); Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i+ buffer_uninit (&fname); Err thinkerwim.openbsd.amsterdam 70 i return 1; Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 .