Kaynağa Gözat

Fix handling of embedded octal characters in strings

mingodad 8 yıl önce
ebeveyn
işleme
8090afa720
1 değiştirilmiş dosya ile 1 ekleme ve 2 silme
  1. 1 2
      SquiLu/squirrel/sqlexer.cpp

+ 1 - 2
SquiLu/squirrel/sqlexer.cpp

@@ -668,10 +668,9 @@ try_again:
                             int octal_char = 0;
                             int octal_char = 0;
                             while(scisodigit(CUR_CHAR)) {
                             while(scisodigit(CUR_CHAR)) {
                                 octal_char = (octal_char)*8+(CUR_CHAR-_SC('0'));
                                 octal_char = (octal_char)*8+(CUR_CHAR-_SC('0'));
-                                ++ndigits;
                                 NEXT();
                                 NEXT();
+                                if(++ndigits == 3) break;
                             }
                             }
-                            if(ndigits > 3) return Error(_SC("max number of embedded octal digits is 3"));
                             if(octal_char > 0xff) return Error(_SC("max value of embedded octal digits is \377"));
                             if(octal_char > 0xff) return Error(_SC("max value of embedded octal digits is \377"));
                             APPEND_CHAR(octal_char);
                             APPEND_CHAR(octal_char);
                             goto try_again;
                             goto try_again;