raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d3420cd35c692a808c0a626c8e54a0c85af3a4d4

commit d3420cd35c692a808c0a626c8e54a0c85af3a4d4
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Jun 8 12:01:38 2017 +0900

    edje_cc handle line too long for buffers
    
    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 | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c
index eb3d02ccb1..9592994735 100644
--- a/src/bin/edje/edje_cc_parse.c
+++ b/src/bin/edje/edje_cc_parse.c
@@ -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)
                {

-- 


Reply via email to