Skip to content

Commit aeadbcd

Browse files
committed
Fix
1 parent 949ee8c commit aeadbcd

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/sink/ApplicationModuleImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,11 @@ private static class InsecureJspFolderVisitor implements FileVisitor<Path> {
416416

417417
@Override
418418
public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) {
419-
final String folder = dir.getFileName().toString();
419+
final Path fileName = dir.getFileName();
420+
if (fileName == null) {
421+
return FileVisitResult.CONTINUE;
422+
}
423+
final String folder = fileName.toString();
420424
if (endsWithIgnoreCase(folder, WEB_INF)) {
421425
return FileVisitResult.SKIP_SUBTREE;
422426
}

dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/sink/ApplicationModuleTest.groovy

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import com.datadog.iast.model.Vulnerability
66
import com.datadog.iast.model.VulnerabilityType
77
import datadog.trace.api.iast.InstrumentationBridge
88
import datadog.trace.api.iast.sink.ApplicationModule
9+
import java.io.File
10+
import java.nio.file.FileVisitResult
11+
import java.nio.file.Paths
912

1013
import static com.datadog.iast.model.VulnerabilityType.ADMIN_CONSOLE_ACTIVE
1114
import static com.datadog.iast.model.VulnerabilityType.DEFAULT_HTML_ESCAPE_INVALID
@@ -138,4 +141,18 @@ class ApplicationModuleTest extends IastModuleImplTestBase {
138141
}
139142
assert vuln.location.line == line
140143
}
144+
145+
void 'insecure jsp visitor handles root directory without name'() {
146+
given:
147+
def visitorClass = ApplicationModuleImpl.declaredClasses.find { it.simpleName == 'InsecureJspFolderVisitor' }
148+
def constructor = visitorClass.getDeclaredConstructor()
149+
constructor.accessible = true
150+
def visitor = constructor.newInstance()
151+
152+
when:
153+
def result = visitor.preVisitDirectory(Paths.get(File.separator), null)
154+
155+
then:
156+
result == FileVisitResult.CONTINUE
157+
}
141158
}

0 commit comments

Comments
 (0)