changeset 103359:eb941fcd33b4

x-load-color-file: avoid array bounds error x-load-color-file expects each line of input to be of the form "R G B name". But if "name" is missing, it would read name[-1], and if that value is '\n', zero it. * xfaces.c (Fx_load_color_file): Handle missing color name.
author Jim Meyering <jim@meyering.net>
date Tue, 09 Jun 2009 05:57:35 +0000
parents 43008904e5da
children 4b98e52b12b1
files src/ChangeLog src/xfaces.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Jun 09 03:44:48 2009 +0000
+++ b/src/ChangeLog	Tue Jun 09 05:57:35 2009 +0000
@@ -1,3 +1,11 @@
+2009-06-09  Jim Meyering  <meyering@redhat.com>
+
+	x-load-color-file: avoid array bounds error
+	x-load-color-file expects each line of input to be of the form
+	"R G B name".  But if "name" is missing, it would read name[-1],
+	and if that value is '\n', zero it.
+	* xfaces.c (Fx_load_color_file): Handle missing color name.
+
 2009-06-09  Kenichi Handa  <handa@m17n.org>
 
 	* charset.c (Fmap_charset_chars): In docstring, state clearly that
--- a/src/xfaces.c	Tue Jun 09 03:44:48 2009 +0000
+++ b/src/xfaces.c	Tue Jun 09 05:57:35 2009 +0000
@@ -6630,7 +6630,7 @@
 	  {
 	    char *name = buf + num;
 	    num = strlen (name) - 1;
-	    if (name[num] == '\n')
+	    if (num >= 0 && name[num] == '\n')
 	      name[num] = 0;
 	    cmap = Fcons (Fcons (build_string (name),
 #ifdef WINDOWSNT