]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix buffer overflow in xbm_scan (bug#47094)
authorAlan Third <alan@idiocy.org>
Sat, 13 Mar 2021 21:59:59 +0000 (21:59 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sun, 14 Mar 2021 05:48:47 +0000 (07:48 +0200)
* src/image.c (xbm_scan): Ensure reading a string doesn't overflow the
buffer.

(cherry picked from commit ebc3b25409dd614c1814a0643960452683e37aa3)

src/image.c

index cd095e0e6599c4e7cd6e72b75a6e848167a3a64b..e3eae5c497cbdbc0ace1e20fa488f93b795665c4 100644 (file)
@@ -3256,6 +3256,7 @@ static int
 xbm_scan (char **s, char *end, char *sval, int *ival)
 {
   unsigned char c UNINIT;
+  char *sval_end = sval + BUFSIZ;
 
  loop:
 
@@ -3315,7 +3316,7 @@ xbm_scan (char **s, char *end, char *sval, int *ival)
   else if (c_isalpha (c) || c == '_')
     {
       *sval++ = c;
-      while (*s < end
+      while (*s < end && sval < sval_end
             && (c = *(*s)++, (c_isalnum (c) || c == '_')))
        *sval++ = c;
       *sval = 0;