diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2021-10-18 18:51:19 +0200 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2021-10-19 11:07:51 +0200 |
commit | ee1b4bd7b6a1efd4d8d657be9814693cd9454cb3 (patch) | |
tree | 3e5356f43140e5090f18969fa82df4466897a714 /agent | |
parent | fe90d4a42153739a15b5af3eaac9da59b726df02 (diff) | |
download | jazzer-api-ee1b4bd7b6a1efd4d8d657be9814693cd9454cb3.tar.gz |
Autoclose Closeables returned by autofuzz
Diffstat (limited to 'agent')
-rw-r--r-- | agent/src/main/java/com/code_intelligence/jazzer/autofuzz/FuzzTarget.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/FuzzTarget.java b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/FuzzTarget.java index b38cb9c5..47dde409 100644 --- a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/FuzzTarget.java +++ b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/FuzzTarget.java @@ -16,6 +16,7 @@ package com.code_intelligence.jazzer.autofuzz; import com.code_intelligence.jazzer.api.FuzzedDataProvider; import com.code_intelligence.jazzer.utils.Utils; +import java.io.Closeable; import java.io.UnsupportedEncodingException; import java.lang.reflect.Constructor; import java.lang.reflect.Executable; @@ -149,11 +150,12 @@ public class FuzzTarget { } else { targetExecutable = data.pickValue(FuzzTarget.targetExecutables); } + Object returnValue = null; try { if (targetExecutable instanceof Method) { - Meta.autofuzz(data, (Method) targetExecutable); + returnValue = Meta.autofuzz(data, (Method) targetExecutable); } else { - Meta.autofuzz(data, (Constructor<?>) targetExecutable); + returnValue = Meta.autofuzz(data, (Constructor<?>) targetExecutable); } executionsSinceLastInvocation = 0; } catch (AutofuzzConstructionException e) { @@ -186,6 +188,10 @@ public class FuzzTarget { System.err.println("Unexpected exception encountered during autofuzz"); t.printStackTrace(); System.exit(1); + } finally { + if (returnValue instanceof Closeable) { + ((Closeable) returnValue).close(); + } } } |