edje_cc handle line too long for buffers
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 8 Jun 2017 03:01:38 +0000 (12:01 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 8 Jun 2017 03:01:38 +0000 (12:01 +0900)
if a line from the cpp processor is too long (more than 4k) then abort
compilation as something is wrong asnd our buffers can't handle it
anyway.

@fix

src/bin/edje/edje_cc_parse.c

index eb3d02c..9592994 100644 (file)
@@ -388,6 +388,12 @@ next_token(char *p, char *end, char **new_p, int *delim)
              tmpstr = alloca(l + 1);
              strncpy(tmpstr, p, l);
              tmpstr[l] = 0;
+             if (l >= sizeof(fl))
+               {
+                  ERR("Line too long: %i chars: %s", l, tmpstr);
+                  err_show();
+                  exit(-1);
+               }
              l = sscanf(tmpstr, "%*s %i \"%[^\"]\"", &nm, fl);
              if (l == 2)
                {