Skip to content

Commit 9164fbe

Browse files
authored
Merge branch 'master' into alejandro.gonzalez/security-controls-metrics
2 parents 8d0ca6d + 8bcee06 commit 9164fbe

File tree

36 files changed

+998
-131
lines changed

36 files changed

+998
-131
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
name: "Bug Report (Low Priority)"
22
description: "Create a public Bug Report. Note that these may not be addressed as it depeonds on capacity and that looking up account information will be difficult."
3-
title: ""
43
labels: "type: bug"
54
body:
65
- type: input

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
name: Feature Request (Low Priority)
22
description: Create a public Feature Request. Note that these may not be addressed as it depeonds on capacity and that looking up account information will be difficult.
3-
title: ""
43
labels: "type: feature request"
54
body:
65
- type: input
@@ -15,7 +14,7 @@ body:
1514
attributes:
1615
label: Library Version(s)
1716
description: "If your feature request is to add instrumentation support for a library please provide the version you use"
18-
placeholder: 1.2
17+
placeholder: "1.2"
1918
validations:
2019
required: false
2120

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/propagation/StringModuleImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,8 @@ public void onStringBuilderSetLength(@Nonnull CharSequence self, int length) {
852852
Range[] newRanges = Ranges.forSubstring(0, length, rangesSelf);
853853
if (newRanges != null && newRanges.length > 0) {
854854
selfTainted.setRanges(newRanges);
855+
} else {
856+
selfTainted.clear();
855857
}
856858
}
857859

dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/propagation/StringModuleTest.groovy

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,9 +1448,11 @@ class StringModuleTest extends IastModuleImplTestBase {
14481448
0 * _
14491449
14501450
where:
1451-
self | length | mockCalls
1452-
sb("123") | 2 | 0
1453-
sb() | 0 | 1
1451+
self | length | mockCalls
1452+
sb("123") | 2 | 0
1453+
sb() | 0 | 1
1454+
sbf("123") | 2 | 0
1455+
sbf() | 0 | 1
14541456
}
14551457
14561458
void 'onStringBuilderSetLength (#input, #length)'() {
@@ -1472,10 +1474,38 @@ class StringModuleTest extends IastModuleImplTestBase {
14721474
taintFormat(result, taintedObject.getRanges()) == expected
14731475
14741476
where:
1475-
input | length | expected
1476-
sb("==>0123<==") | 3 | "==>012<=="
1477-
sb("0123==>456<==78") | 5 | "0123==>4<=="
1478-
sb("01==>234<==5==>678<==90") | 8 | "01==>234<==5==>67<=="
1477+
input | length | expected
1478+
sb("==>0123<==") | 3 | "==>012<=="
1479+
sb("0123==>456<==78") | 5 | "0123==>4<=="
1480+
sb("01==>234<==5==>678<==90") | 8 | "01==>234<==5==>67<=="
1481+
sbf("==>0123<==") | 3 | "==>012<=="
1482+
sbf("0123==>456<==78") | 5 | "0123==>4<=="
1483+
sbf("01==>234<==5==>678<==90") | 8 | "01==>234<==5==>67<=="
1484+
}
1485+
1486+
void 'onStringBuilderSetLength untainting after setLength (#input, #length)'() {
1487+
final taintedObjects = ctx.getTaintedObjects()
1488+
def self = addFromTaintFormat(taintedObjects, input)
1489+
if (self instanceof StringBuilder) {
1490+
((StringBuilder) self).setLength(length)
1491+
} else if (self instanceof StringBuffer) {
1492+
((StringBuffer) self).setLength(length)
1493+
}
1494+
1495+
when:
1496+
module.onStringBuilderSetLength(self, length)
1497+
def taintedObject = taintedObjects.get(self)
1498+
1499+
then:
1500+
1 * tracer.activeSpan() >> span
1501+
taintedObject == null
1502+
1503+
where:
1504+
input | length
1505+
sb("==>0123<==") | 0
1506+
sb("0123==>456<==78") | 3
1507+
sbf("==>0123<==") | 0
1508+
sbf("0123==>456<==78") | 3
14791509
}
14801510
14811511
private static Date date(final String pattern, final String value) {

dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/StringBuilderCallSite.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ public static CharSequence afterSubSequence(
183183
}
184184

185185
@CallSite.After("void java.lang.StringBuilder.setLength(int)")
186+
@CallSite.After("void java.lang.StringBuffer.setLength(int)")
186187
public static void afterSetLength(
187188
@CallSite.This final CharSequence self, @CallSite.Argument final int length) {
188189
final StringModule module = InstrumentationBridge.STRING;

dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/StringBuilderCallSiteTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ class StringBuilderCallSiteTest extends AgentTestRunner {
266266
where:
267267
type | suite | param | length | expected
268268
"builder" | new TestStringBuilderSuite() | sb('012345') | 5 | '01234'
269+
"buffer" | new TestStringBufferSuite() | sbf('012345') | 5 | '01234'
269270
}
270271
271272
private static class BrokenToString {

dd-java-agent/instrumentation/jboss-modules/src/main/java/datadog/trace/instrumentation/jbossmodules/ModuleInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import com.google.auto.service.AutoService;
1010
import datadog.trace.agent.tooling.Instrumenter;
1111
import datadog.trace.agent.tooling.InstrumenterModule;
12-
import datadog.trace.api.naming.ClassloaderServiceNames;
12+
import datadog.trace.api.ClassloaderConfigurationOverrides;
1313
import datadog.trace.bootstrap.AgentClassLoading;
1414
import java.io.IOException;
1515
import java.io.InputStream;
@@ -164,7 +164,7 @@ public static class CaptureModuleNameAdvice {
164164
public static void afterConstruct(@Advice.This final Module module) {
165165
final String name = ModuleNameHelper.extractDeploymentName(module.getClassLoader());
166166
if (name != null && !name.isEmpty()) {
167-
ClassloaderServiceNames.addServiceName(module.getClassLoader(), name);
167+
ClassloaderConfigurationOverrides.withPinnedServiceName(module.getClassLoader(), name);
168168
}
169169
}
170170
}

dd-java-agent/instrumentation/liberty-20/src/main/java/datadog/trace/instrumentation/liberty20/LibertyServerInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import com.ibm.wsspi.webcontainer.webapp.IWebAppDispatcherContext;
1717
import datadog.trace.agent.tooling.Instrumenter;
1818
import datadog.trace.agent.tooling.InstrumenterModule;
19+
import datadog.trace.api.ClassloaderConfigurationOverrides;
1920
import datadog.trace.api.Config;
2021
import datadog.trace.api.CorrelationIdentifier;
2122
import datadog.trace.api.GlobalTracer;
2223
import datadog.trace.api.gateway.Flow;
23-
import datadog.trace.api.naming.ClassloaderServiceNames;
2424
import datadog.trace.bootstrap.ActiveSubsystems;
2525
import datadog.trace.bootstrap.ContextStore;
2626
import datadog.trace.bootstrap.InstrumentationContext;
@@ -116,7 +116,7 @@ public static class HandleRequestAdvice {
116116
if (webapp != null) {
117117
final ClassLoader cl = webapp.getClassLoader();
118118
if (cl != null) {
119-
ClassloaderServiceNames.maybeSetToSpan(span, cl);
119+
ClassloaderConfigurationOverrides.maybeEnrichSpan(span, cl);
120120
}
121121
}
122122
}

dd-java-agent/instrumentation/liberty-20/src/main/java/datadog/trace/instrumentation/liberty20/ThreadContextClassloaderInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.ibm.ws.classloading.internal.ThreadContextClassLoader;
77
import datadog.trace.agent.tooling.Instrumenter;
88
import datadog.trace.agent.tooling.InstrumenterModule;
9-
import datadog.trace.api.naming.ClassloaderServiceNames;
9+
import datadog.trace.api.ClassloaderConfigurationOverrides;
1010
import net.bytebuddy.asm.Advice;
1111

1212
@AutoService(InstrumenterModule.class)
@@ -40,7 +40,7 @@ public static class ThreadContextClassloaderAdvice {
4040
public static void afterConstruct(@Advice.This ThreadContextClassLoader self) {
4141
final String name = BundleNameHelper.extractDeploymentName(self);
4242
if (name != null && !name.isEmpty()) {
43-
ClassloaderServiceNames.addServiceName(self, name);
43+
ClassloaderConfigurationOverrides.withPinnedServiceName(self, name);
4444
}
4545
}
4646
}

dd-java-agent/instrumentation/liberty-23/src/main/java/datadog/trace/instrumentation/liberty23/LibertyServerInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
import com.ibm.wsspi.webcontainer.webapp.IWebAppDispatcherContext;
1717
import datadog.trace.agent.tooling.Instrumenter;
1818
import datadog.trace.agent.tooling.InstrumenterModule;
19+
import datadog.trace.api.ClassloaderConfigurationOverrides;
1920
import datadog.trace.api.Config;
2021
import datadog.trace.api.CorrelationIdentifier;
2122
import datadog.trace.api.GlobalTracer;
2223
import datadog.trace.api.gateway.Flow;
23-
import datadog.trace.api.naming.ClassloaderServiceNames;
2424
import datadog.trace.bootstrap.ActiveSubsystems;
2525
import datadog.trace.bootstrap.ContextStore;
2626
import datadog.trace.bootstrap.InstrumentationContext;
@@ -118,7 +118,7 @@ public static class HandleRequestAdvice {
118118
if (webapp != null) {
119119
final ClassLoader cl = webapp.getClassLoader();
120120
if (cl != null) {
121-
ClassloaderServiceNames.maybeSetToSpan(span, cl);
121+
ClassloaderConfigurationOverrides.maybeEnrichSpan(span, cl);
122122
}
123123
}
124124
}

0 commit comments

Comments
 (0)