Skip to content

Commit 6857df2

Browse files
authored
Merge pull request #3 from cisco-ai-defense/fixfp
ci: only fail fuzzing on crashes/timeouts/OOM, not leaks
2 parents 671d378 + da066a5 commit 6857df2

1 file changed

Lines changed: 42 additions & 12 deletions

File tree

.github/workflows/fuzz.yml

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,20 @@ jobs:
5757
- name: Check for crashes
5858
if: always()
5959
run: |
60-
if [ -d "fuzz/artifacts/all_protocols" ] && [ "$(ls -A fuzz/artifacts/all_protocols)" ]; then
61-
echo "::error::Fuzzing found crashes!"
62-
ls -la fuzz/artifacts/all_protocols/
63-
exit 1
60+
if [ -d "fuzz/artifacts/all_protocols" ]; then
61+
# Only fail on actual crashes, not memory leaks (often false positives)
62+
if ls fuzz/artifacts/all_protocols/crash-* 2>/dev/null || \
63+
ls fuzz/artifacts/all_protocols/timeout-* 2>/dev/null || \
64+
ls fuzz/artifacts/all_protocols/oom-* 2>/dev/null; then
65+
echo "::error::Fuzzing found crashes!"
66+
ls -la fuzz/artifacts/all_protocols/
67+
exit 1
68+
fi
69+
# Log leaks but don't fail
70+
if ls fuzz/artifacts/all_protocols/leak-* 2>/dev/null; then
71+
echo "::warning::Memory leaks detected (not failing build)"
72+
ls -la fuzz/artifacts/all_protocols/leak-*
73+
fi
6474
fi
6575
6676
- name: Upload crash artifacts
@@ -118,10 +128,20 @@ jobs:
118128
- name: Check for crashes
119129
if: always()
120130
run: |
121-
if [ -d "fuzz/artifacts/validate_with_python" ] && [ "$(ls -A fuzz/artifacts/validate_with_python)" ]; then
122-
echo "::error::Fuzzing found crashes!"
123-
ls -la fuzz/artifacts/validate_with_python/
124-
exit 1
131+
if [ -d "fuzz/artifacts/validate_with_python" ]; then
132+
# Only fail on actual crashes, not memory leaks (often false positives)
133+
if ls fuzz/artifacts/validate_with_python/crash-* 2>/dev/null || \
134+
ls fuzz/artifacts/validate_with_python/timeout-* 2>/dev/null || \
135+
ls fuzz/artifacts/validate_with_python/oom-* 2>/dev/null; then
136+
echo "::error::Fuzzing found crashes!"
137+
ls -la fuzz/artifacts/validate_with_python/
138+
exit 1
139+
fi
140+
# Log leaks but don't fail
141+
if ls fuzz/artifacts/validate_with_python/leak-* 2>/dev/null; then
142+
echo "::warning::Memory leaks detected (not failing build)"
143+
ls -la fuzz/artifacts/validate_with_python/leak-*
144+
fi
125145
fi
126146
127147
- name: Upload crash artifacts
@@ -170,10 +190,20 @@ jobs:
170190
- name: Check for crashes
171191
if: always()
172192
run: |
173-
if [ -d "fuzz/artifacts/${{ github.event.inputs.target }}" ] && [ "$(ls -A fuzz/artifacts/${{ github.event.inputs.target }})" ]; then
174-
echo "::error::Fuzzing found crashes!"
175-
ls -la fuzz/artifacts/${{ github.event.inputs.target }}/
176-
exit 1
193+
if [ -d "fuzz/artifacts/${{ github.event.inputs.target }}" ]; then
194+
# Only fail on actual crashes, not memory leaks (often false positives)
195+
if ls fuzz/artifacts/${{ github.event.inputs.target }}/crash-* 2>/dev/null || \
196+
ls fuzz/artifacts/${{ github.event.inputs.target }}/timeout-* 2>/dev/null || \
197+
ls fuzz/artifacts/${{ github.event.inputs.target }}/oom-* 2>/dev/null; then
198+
echo "::error::Fuzzing found crashes!"
199+
ls -la fuzz/artifacts/${{ github.event.inputs.target }}/
200+
exit 1
201+
fi
202+
# Log leaks but don't fail
203+
if ls fuzz/artifacts/${{ github.event.inputs.target }}/leak-* 2>/dev/null; then
204+
echo "::warning::Memory leaks detected (not failing build)"
205+
ls -la fuzz/artifacts/${{ github.event.inputs.target }}/leak-*
206+
fi
177207
fi
178208
179209
- name: Upload crash artifacts

0 commit comments

Comments
 (0)