Skip to content

Commit

Permalink
Merge pull request #44 from 0x7Fancy/stable
Browse files Browse the repository at this point in the history
fix: revert '+' syntax optimize && add growth check limit for 'random_recursive_mutation'
  • Loading branch information
h1994st authored Jan 23, 2024
2 parents 9716f10 + 032a984 commit cdad8f0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 22 deletions.
25 changes: 3 additions & 22 deletions grammars/f1_g4_translate.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,30 +75,11 @@ def esc_token(self, t):
t = t.replace('\t', '\\t')
return t

def rule_to_s(self, key, rule, grammar):
# feat: add 'directly head/tail recursion' optimized syntax '+'
if len(rule) == 0:
return ''

# head recursion
recursion = False
if rule[0] == key:
rule = rule[1:]
recursion = True
# tail recursion
if rule[-1] == key:
rule = rule[:-1]
recursion = True

# append rules
data = ' '.join(["'%s'" % self.esc_token(t)
def rule_to_s(self, rule, grammar):
return ' '.join(["'%s'" % self.esc_token(t)
if t not in grammar else self.to_key(t)
for t in rule])

if recursion:
data = "(%s)+" % data
return data

def translate(self):
lines = ['grammar Grammar;']
entries = '\n | '.join([self.to_key(entry_k) + ' EOF' for entry_k in self.entry_keys])
Expand All @@ -108,7 +89,7 @@ def translate(self):
;''' % entries)
for k in self.grammar_keys:
rules = self.grammar[k]
v = '\n | '.join([self.rule_to_s(k, rule, self.grammar)
v = '\n | '.join([self.rule_to_s(rule, self.grammar)
for rule in rules])
lines.append('''\
%s
Expand Down
4 changes: 4 additions & 0 deletions src/grammar_mutator.c
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,11 @@ size_t afl_custom_fuzz(my_mutator_t *data, __attribute__((unused)) uint8_t *buf,
const unsigned RRM_GROWTH = 10; // Allow 2**RRM_GROWTH of bytes of expansion
tree_t *rrm_tree = NULL;
tree_to_buf(tree);
int failed_count = 8;
do {
if (failed_count-- <= 0) {
break;
}

if (rrm_tree) tree_free(rrm_tree);
rrm_tree =
Expand Down

0 comments on commit cdad8f0

Please sign in to comment.