`q` will out of bound access if `*q` already reach the end of
multilib_options, so check it before increment to prevent condition
check part out of bound access.

btw, this bug is detected by address sanitizer.


2014-04-09  Kito Cheng  <k...@0xlab.org>
    * gcc.c (used_arg): Prevent out of bound access for multilib_options.

diff --git a/gcc/gcc.c b/gcc/gcc.c
index 5cb485a..c8ab7d6 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -7490,7 +7490,7 @@ used_arg (const char *p, int len)
        {
          const char *r;

-         for (q = multilib_options; *q != '\0'; q++)
+         for (q = multilib_options; *q != '\0'; *q && q++)
            {
              while (*q == ' ')
                q++;

Reply via email to