[Pcre-svn] [607] code/trunk/src/pcre2_fuzzsupport.c: Make fu…

Inizio della pagina
Delete this message
Autore: Subversion repository
Data:  
To: pcre-svn
Oggetto: [Pcre-svn] [607] code/trunk/src/pcre2_fuzzsupport.c: Make fuzz support abort on internal errors.
Revision: 607
          http://www.exim.org/viewvc/pcre2?view=rev&revision=607
Author:   ph10
Date:     2016-11-24 15:57:34 +0000 (Thu, 24 Nov 2016)
Log Message:
-----------
Make fuzz support abort on internal errors.


Modified Paths:
--------------
    code/trunk/src/pcre2_fuzzsupport.c


Modified: code/trunk/src/pcre2_fuzzsupport.c
===================================================================
--- code/trunk/src/pcre2_fuzzsupport.c    2016-11-23 17:17:57 UTC (rev 606)
+++ code/trunk/src/pcre2_fuzzsupport.c    2016-11-24 15:57:34 UTC (rev 607)
@@ -81,8 +81,8 @@
   pcre2_code *code;


 #ifdef STANDALONE
-  printf("Compile with options %.8x", compile_options);
-  printf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
+  printf("Compile options %.8x never_backslash_c", compile_options);
+  printf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
     ((compile_options & PCRE2_ALT_BSUX) != 0)? ",alt_bsux" : "",
     ((compile_options & PCRE2_ALT_CIRCUMFLEX) != 0)? ",alt_circumflex" : "",
     ((compile_options & PCRE2_ALT_VERBNAMES) != 0)? ",alt_verbnames" : "",
@@ -97,7 +97,6 @@
     ((compile_options & PCRE2_FIRSTLINE) != 0)? ",firstline" : "",
     ((compile_options & PCRE2_MATCH_UNSET_BACKREF) != 0)? ",match_unset_backref" : "",
     ((compile_options & PCRE2_MULTILINE) != 0)? ",multiline" : "",
-    ((compile_options & PCRE2_NEVER_BACKSLASH_C) != 0)? ",never_backslash_c" : "",
     ((compile_options & PCRE2_NEVER_UCP) != 0)? ",never_ucp" : "",
     ((compile_options & PCRE2_NEVER_UTF) != 0)? ",never_utf" : "",
     ((compile_options & PCRE2_NO_AUTO_CAPTURE) != 0)? ",no_auto_capture" : "",
@@ -113,6 +112,8 @@


   code = pcre2_compile((PCRE2_SPTR)data, (PCRE2_SIZE)size, compile_options,
     &errorcode, &erroroffset, NULL);
+    
+  /* Compilation succeeded */


   if (code != NULL)
     {
@@ -168,16 +169,19 @@
     match_options = save_match_options;  /* Reset for the second compile */
     pcre2_code_free(code);
     }
+    
+  /* Compilation failed */


-#ifdef STANDALONE
   else
     {
     unsigned char buffer[256];
     pcre2_get_error_message(errorcode, buffer, 256);
-    printf("Compile failed: error %d at offset %lu: %s\n", errorcode,
-      erroroffset, buffer);
+#ifdef STANDALONE
+    printf("Error %d at offset %lu: %s\n", errorcode, erroroffset, buffer);
+#else
+    if (strstr((const char *)buffer, "internal error") != NULL) abort();
+#endif
     }
-#endif


compile_options = PCRE2_NEVER_BACKSLASH_C; /* For second time */
}