Mercurial > emacs
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