From 6bc7c9043c71646f99bf43b44be747c7bba93c71 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Sat, 15 Oct 2022 21:19:55 +0200 Subject: tests: Simplify LDAP test setups The indirection of using a factory isn't necessary and actually causes ClassNotFoundExceptions on the factory when the entire fuzz target is loaded in a custom ClassLoader and the factory isn't on the system class loader path. --- sanitizers/src/test/java/com/example/BUILD.bazel | 2 -- .../src/test/java/com/example/LdapDnInjection.java | 14 +++--------- .../test/java/com/example/LdapSearchInjection.java | 14 +++--------- .../example/ldap/MockInitialContextFactory.java | 26 ---------------------- 4 files changed, 6 insertions(+), 50 deletions(-) delete mode 100644 sanitizers/src/test/java/com/example/ldap/MockInitialContextFactory.java (limited to 'sanitizers') diff --git a/sanitizers/src/test/java/com/example/BUILD.bazel b/sanitizers/src/test/java/com/example/BUILD.bazel index 985c7b20..6f396594 100644 --- a/sanitizers/src/test/java/com/example/BUILD.bazel +++ b/sanitizers/src/test/java/com/example/BUILD.bazel @@ -85,7 +85,6 @@ java_fuzz_target_test( name = "LdapSearchInjection", srcs = [ "LdapSearchInjection.java", - "ldap/MockInitialContextFactory.java", "ldap/MockLdapContext.java", ], allowed_findings = [ @@ -103,7 +102,6 @@ java_fuzz_target_test( name = "LdapDnInjection", srcs = [ "LdapDnInjection.java", - "ldap/MockInitialContextFactory.java", "ldap/MockLdapContext.java", ], allowed_findings = [ diff --git a/sanitizers/src/test/java/com/example/LdapDnInjection.java b/sanitizers/src/test/java/com/example/LdapDnInjection.java index 911db1dc..227a6bb9 100644 --- a/sanitizers/src/test/java/com/example/LdapDnInjection.java +++ b/sanitizers/src/test/java/com/example/LdapDnInjection.java @@ -15,20 +15,12 @@ package com.example; import com.code_intelligence.jazzer.api.FuzzedDataProvider; -import java.util.Hashtable; -import javax.naming.Context; -import javax.naming.NamingException; -import javax.naming.directory.InitialDirContext; +import com.example.ldap.MockLdapContext; +import javax.naming.directory.DirContext; import javax.naming.directory.SearchControls; public class LdapDnInjection { - private static InitialDirContext ctx; - - public static void fuzzerInitialize() throws NamingException { - Hashtable env = new Hashtable<>(); - env.put(Context.INITIAL_CONTEXT_FACTORY, "com.example.ldap.MockInitialContextFactory"); - ctx = new InitialDirContext(env); - } + private static final DirContext ctx = new MockLdapContext(); public static void fuzzerTestOneInput(FuzzedDataProvider fuzzedDataProvider) throws Exception { // Externally provided DN input needs to be escaped properly diff --git a/sanitizers/src/test/java/com/example/LdapSearchInjection.java b/sanitizers/src/test/java/com/example/LdapSearchInjection.java index b3dfee74..5226b819 100644 --- a/sanitizers/src/test/java/com/example/LdapSearchInjection.java +++ b/sanitizers/src/test/java/com/example/LdapSearchInjection.java @@ -15,20 +15,12 @@ package com.example; import com.code_intelligence.jazzer.api.FuzzedDataProvider; -import java.util.Hashtable; -import javax.naming.Context; -import javax.naming.NamingException; +import com.example.ldap.MockLdapContext; import javax.naming.directory.SearchControls; -import javax.naming.ldap.InitialLdapContext; +import javax.naming.ldap.LdapContext; public class LdapSearchInjection { - private static InitialLdapContext ctx; - - public static void fuzzerInitialize() throws NamingException { - Hashtable env = new Hashtable<>(); - env.put(Context.INITIAL_CONTEXT_FACTORY, "com.example.ldap.MockInitialContextFactory"); - ctx = new InitialLdapContext(env, null); - } + private static final LdapContext ctx = new MockLdapContext(); public static void fuzzerTestOneInput(FuzzedDataProvider fuzzedDataProvider) throws Exception { // Externally provided LDAP query input needs to be escaped properly diff --git a/sanitizers/src/test/java/com/example/ldap/MockInitialContextFactory.java b/sanitizers/src/test/java/com/example/ldap/MockInitialContextFactory.java deleted file mode 100644 index b674f5c5..00000000 --- a/sanitizers/src/test/java/com/example/ldap/MockInitialContextFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2021 Code Intelligence GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.example.ldap; - -import java.util.Hashtable; -import javax.naming.Context; -import javax.naming.NamingException; -import javax.naming.spi.InitialContextFactory; - -public class MockInitialContextFactory implements InitialContextFactory { - public Context getInitialContext(Hashtable environment) { - return new MockLdapContext(); - } -} -- cgit v1.2.3