@@ -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