diff options
Diffstat (limited to 'src/glsl/pp')
| -rw-r--r-- | src/glsl/pp/sl_pp_purify.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/src/glsl/pp/sl_pp_purify.c b/src/glsl/pp/sl_pp_purify.c index 7fbfc78d42..ded4dc8963 100644 --- a/src/glsl/pp/sl_pp_purify.c +++ b/src/glsl/pp/sl_pp_purify.c @@ -152,6 +152,9 @@ _purify_comment(const char *input,                    return eaten;                 }              } +            if (next == '\0') { +               return 0; +            }           }        }     } @@ -171,8 +174,13 @@ sl_pp_purify(const char *input,     for (;;) {        char c; +      unsigned int eaten; -      input += _purify_comment(input, &c); +      eaten = _purify_comment(input, &c); +      if (!eaten) { +         return -1; +      } +      input += eaten;        if (out_len >= out_max) {           unsigned int new_max = out_max; | 
