Add a call to pcre2_dfa_match() to the fuzzer driver.
This commit is contained in:
parent
62564c08fd
commit
72f0c742dd
|
@ -19,6 +19,8 @@ Written by Philip Hazel, October 2016
|
|||
|
||||
#define MAX_MATCH_SIZE 1000
|
||||
|
||||
#define DFA_WORKSPACE_COUNT 100
|
||||
|
||||
#define ALLOWED_COMPILE_OPTIONS \
|
||||
(PCRE2_ANCHORED|PCRE2_ALLOW_EMPTY_CLASS|PCRE2_ALT_BSUX|PCRE2_ALT_CIRCUMFLEX| \
|
||||
PCRE2_ALT_VERBNAMES|PCRE2_AUTO_CALLOUT|PCRE2_CASELESS|PCRE2_DOLLAR_ENDONLY| \
|
||||
|
@ -59,6 +61,7 @@ uint32_t match_options;
|
|||
pcre2_match_data *match_data = NULL;
|
||||
pcre2_match_context *match_context = NULL;
|
||||
size_t match_size;
|
||||
int dfa_workspace[DFA_WORKSPACE_COUNT];
|
||||
int r1, r2;
|
||||
int i;
|
||||
|
||||
|
@ -195,6 +198,42 @@ for (i = 0; i < 2; i++)
|
|||
errorcode = pcre2_match(code, (PCRE2_SPTR)data, (PCRE2_SIZE)match_size, 0,
|
||||
match_options, match_data, match_context);
|
||||
|
||||
#ifdef STANDALONE
|
||||
if (errorcode >= 0) printf("Match returned %d\n", errorcode); else
|
||||
{
|
||||
unsigned char buffer[256];
|
||||
pcre2_get_error_message(errorcode, buffer, 256);
|
||||
printf("Match failed: error %d: %s\n", errorcode, buffer);
|
||||
}
|
||||
#endif
|
||||
|
||||
match_options = 0; /* For second time */
|
||||
}
|
||||
|
||||
/* Match with DFA twice, with and without options */
|
||||
|
||||
match_options = save_match_options & ~PCRE2_NO_JIT;
|
||||
for (j = 0; j < 2; j++)
|
||||
{
|
||||
#ifdef STANDALONE
|
||||
printf("DFA match options %.8x", match_options);
|
||||
printf("%s%s%s%s%s%s%s%s%s\n",
|
||||
((match_options & PCRE2_ANCHORED) != 0)? ",anchored" : "",
|
||||
((match_options & PCRE2_ENDANCHORED) != 0)? ",endanchored" : "",
|
||||
((match_options & PCRE2_NO_UTF_CHECK) != 0)? ",no_utf_check" : "",
|
||||
((match_options & PCRE2_NOTBOL) != 0)? ",notbol" : "",
|
||||
((match_options & PCRE2_NOTEMPTY) != 0)? ",notempty" : "",
|
||||
((match_options & PCRE2_NOTEMPTY_ATSTART) != 0)? ",notempty_atstart" : "",
|
||||
((match_options & PCRE2_NOTEOL) != 0)? ",noteol" : "",
|
||||
((match_options & PCRE2_PARTIAL_HARD) != 0)? ",partial_hard" : "",
|
||||
((match_options & PCRE2_PARTIAL_SOFT) != 0)? ",partial_soft" : "");
|
||||
#endif
|
||||
|
||||
callout_count = 0;
|
||||
errorcode = pcre2_dfa_match(code, (PCRE2_SPTR)data,
|
||||
(PCRE2_SIZE)match_size, 0, match_options, match_data, match_context,
|
||||
dfa_workspace, DFA_WORKSPACE_COUNT);
|
||||
|
||||
#ifdef STANDALONE
|
||||
if (errorcode >= 0) printf("Match returned %d\n", errorcode); else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue