Skip to content

Commit 52aeeec

Browse files
authored
Increase IAST propagation to StringBuffer append (#8082)
1 parent 0196f1e commit 52aeeec

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public static CharSequence afterInit(
4141
@CallSite.After("java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.StringBuffer)")
4242
@CallSite.After("java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String)")
4343
@CallSite.After("java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.CharSequence)")
44+
@CallSite.After("java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.StringBuffer)")
4445
@Nonnull
4546
public static CharSequence afterAppend(
4647
@CallSite.This @Nonnull final CharSequence self,
@@ -59,6 +60,8 @@ public static CharSequence afterAppend(
5960

6061
@CallSite.After(
6162
"java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.CharSequence, int, int)")
63+
@CallSite.After(
64+
"java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.CharSequence, int, int)")
6265
@Nonnull
6366
public static CharSequence afterAppendWithSubstring(
6467
@CallSite.This @Nonnull final CharSequence self,

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ class StringBuilderCallSiteTest extends AgentTestRunner {
6363
0 * _
6464

6565
where:
66-
suite | target | param | expected
67-
new TestStringBuilderSuite() | new StringBuilder('Hello ') | 23.5F | 'Hello 23.5'
68-
new TestStringBuilderSuite() | new StringBuilder('Hello ') | new StringBuffer('World!') | 'Hello World!'
69-
new TestStringBuilderSuite() | new StringBuilder('Hello ') | 'World!' | 'Hello World!'
70-
new TestStringBufferSuite() | new StringBuffer('Hello ') | 23.5F | 'Hello 23.5'
71-
new TestStringBufferSuite() | new StringBuffer('Hello ') | new StringBuilder('World!') | 'Hello World!'
72-
new TestStringBufferSuite() | new StringBuffer('Hello ') | 'World!' | 'Hello World!'
66+
suite | target | param | expected
67+
new TestStringBuilderSuite() | sb('Hello ') | 23.5F | 'Hello 23.5'
68+
new TestStringBuilderSuite() | sb('Hello ') | sbf('World!') | 'Hello World!'
69+
new TestStringBuilderSuite() | sb('Hello ') | 'World!' | 'Hello World!'
70+
new TestStringBufferSuite() | sbf('Hello ') | 23.5F | 'Hello 23.5'
71+
new TestStringBufferSuite() | sbf('Hello ') | sbf('World!') | 'Hello World!'
72+
new TestStringBufferSuite() | sbf('Hello ') | 'World!' | 'Hello World!'
7373
}
7474

7575
void 'test string builder append object throwing exceptions'() {
@@ -104,8 +104,9 @@ class StringBuilderCallSiteTest extends AgentTestRunner {
104104
0 * _
105105

106106
where:
107-
suite | target | param | start | end | expected
108-
new TestStringBuilderSuite() | new StringBuilder('Hello ') | 'World!' | 0 | 5 | 'Hello World'
107+
suite | target | param | start | end | expected
108+
new TestStringBuilderSuite() | sb('Hello ') | 'World!' | 0 | 5 | 'Hello World'
109+
new TestStringBufferSuite() | sbf('Hello ') | 'World!' | 0 | 5 | 'Hello World'
109110
}
110111

111112
void 'test string builder toString call site'() {

0 commit comments

Comments
 (0)