aboutsummaryrefslogtreecommitdiff
path: root/agent
diff options
context:
space:
mode:
authorFabian Meumertzheim <meumertzheim@code-intelligence.com>2021-10-18 18:51:19 +0200
committerFabian Meumertzheim <fabian@meumertzhe.im>2021-10-19 11:07:51 +0200
commitee1b4bd7b6a1efd4d8d657be9814693cd9454cb3 (patch)
tree3e5356f43140e5090f18969fa82df4466897a714 /agent
parentfe90d4a42153739a15b5af3eaac9da59b726df02 (diff)
downloadjazzer-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.java10
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();
+ }
}
}