|
1 | 1 | package datadog.trace.instrumentation.java.lang; |
2 | 2 |
|
3 | | -import static datadog.trace.api.iast.VulnerabilityMarks.NOT_MARKED; |
4 | | - |
5 | 3 | import datadog.trace.agent.tooling.csi.CallSite; |
6 | 4 | import datadog.trace.api.iast.IastCallSites; |
7 | 5 | import datadog.trace.api.iast.InstrumentationBridge; |
8 | 6 | import datadog.trace.api.iast.Propagation; |
9 | | -import datadog.trace.api.iast.propagation.CodecModule; |
10 | | -import datadog.trace.api.iast.propagation.PropagationModule; |
11 | 7 | import datadog.trace.api.iast.propagation.StringModule; |
12 | 8 | import datadog.trace.util.stacktrace.StackUtils; |
13 | | -import java.nio.charset.Charset; |
14 | 9 | import java.util.ArrayList; |
15 | 10 | import java.util.List; |
16 | 11 | import java.util.Locale; |
@@ -220,130 +215,6 @@ public static String afterStringConstructor( |
220 | 215 | return result; |
221 | 216 | } |
222 | 217 |
|
223 | | - @CallSite.After("void java.lang.String.<init>(byte[])") |
224 | | - public static String afterByteArrayCtor( |
225 | | - @CallSite.AllArguments @Nonnull final Object[] params, |
226 | | - @CallSite.Return @Nonnull final String result) { |
227 | | - final CodecModule module = InstrumentationBridge.CODEC; |
228 | | - try { |
229 | | - if (module != null) { |
230 | | - final byte[] bytes = (byte[]) params[0]; |
231 | | - if (bytes != null) { |
232 | | - module.onStringFromBytes(bytes, 0, bytes.length, null, result); |
233 | | - } |
234 | | - } |
235 | | - } catch (final Throwable e) { |
236 | | - module.onUnexpectedException("afterByteArrayCtor threw", e); |
237 | | - } |
238 | | - return result; |
239 | | - } |
240 | | - |
241 | | - @CallSite.After("void java.lang.String.<init>(byte[], java.lang.String)") |
242 | | - @CallSite.After("void java.lang.String.<init>(byte[], java.nio.charset.Charset)") |
243 | | - public static String afterByteArrayCtor2( |
244 | | - @CallSite.AllArguments @Nonnull final Object[] params, |
245 | | - @CallSite.Return @Nonnull final String result) { |
246 | | - final CodecModule module = InstrumentationBridge.CODEC; |
247 | | - try { |
248 | | - if (module != null) { |
249 | | - final byte[] bytes = (byte[]) params[0]; |
250 | | - if (bytes != null) { |
251 | | - final String charset = |
252 | | - params[1] instanceof Charset ? ((Charset) params[1]).name() : (String) params[1]; |
253 | | - module.onStringFromBytes(bytes, 0, bytes.length, charset, result); |
254 | | - } |
255 | | - } |
256 | | - } catch (final Throwable e) { |
257 | | - module.onUnexpectedException("afterByteArrayCtor2 threw", e); |
258 | | - } |
259 | | - return result; |
260 | | - } |
261 | | - |
262 | | - @CallSite.After("void java.lang.String.<init>(byte[], int, int)") |
263 | | - public static String afterByteArrayCtor3( |
264 | | - @CallSite.AllArguments @Nonnull final Object[] params, |
265 | | - @CallSite.Return @Nonnull final String result) { |
266 | | - final CodecModule module = InstrumentationBridge.CODEC; |
267 | | - try { |
268 | | - if (module != null) { |
269 | | - final byte[] bytes = (byte[]) params[0]; |
270 | | - if (bytes != null) { |
271 | | - module.onStringFromBytes(bytes, (int) params[1], (int) params[2], null, result); |
272 | | - } |
273 | | - } |
274 | | - } catch (final Throwable e) { |
275 | | - module.onUnexpectedException("afterByteArrayCtor3 threw", e); |
276 | | - } |
277 | | - return result; |
278 | | - } |
279 | | - |
280 | | - @CallSite.After("void java.lang.String.<init>(byte[], int, int, java.lang.String)") |
281 | | - @CallSite.After("void java.lang.String.<init>(byte[], int, int, java.nio.charset.Charset)") |
282 | | - public static String afterByteArrayCtor4( |
283 | | - @CallSite.AllArguments @Nonnull final Object[] params, |
284 | | - @CallSite.Return @Nonnull final String result) { |
285 | | - final CodecModule module = InstrumentationBridge.CODEC; |
286 | | - try { |
287 | | - if (module != null) { |
288 | | - final byte[] bytes = (byte[]) params[0]; |
289 | | - if (bytes != null) { |
290 | | - final String charset = |
291 | | - params[3] instanceof Charset ? ((Charset) params[3]).name() : (String) params[3]; |
292 | | - module.onStringFromBytes(bytes, (int) params[1], (int) params[2], charset, result); |
293 | | - } |
294 | | - } |
295 | | - } catch (final Throwable e) { |
296 | | - module.onUnexpectedException("afterByteArrayCtor4 threw", e); |
297 | | - } |
298 | | - return result; |
299 | | - } |
300 | | - |
301 | | - @CallSite.After("byte[] java.lang.String.getBytes()") |
302 | | - public static byte[] afterGetBytes( |
303 | | - @CallSite.This @Nonnull final String self, @CallSite.Return @Nonnull final byte[] result) { |
304 | | - final CodecModule module = InstrumentationBridge.CODEC; |
305 | | - try { |
306 | | - if (module != null) { |
307 | | - module.onStringGetBytes(self, null, result); |
308 | | - } |
309 | | - } catch (final Throwable e) { |
310 | | - module.onUnexpectedException("afterGetBytes threw", e); |
311 | | - } |
312 | | - return result; |
313 | | - } |
314 | | - |
315 | | - @CallSite.After("byte[] java.lang.String.getBytes(java.lang.String)") |
316 | | - public static byte[] afterGetBytes( |
317 | | - @CallSite.This @Nonnull final String self, |
318 | | - @CallSite.Argument @Nullable final String encoding, |
319 | | - @CallSite.Return @Nonnull final byte[] result) { |
320 | | - final CodecModule module = InstrumentationBridge.CODEC; |
321 | | - try { |
322 | | - if (module != null) { |
323 | | - module.onStringGetBytes(self, encoding, result); |
324 | | - } |
325 | | - } catch (final Throwable e) { |
326 | | - module.onUnexpectedException("afterGetBytes threw", e); |
327 | | - } |
328 | | - return result; |
329 | | - } |
330 | | - |
331 | | - @CallSite.After("byte[] java.lang.String.getBytes(java.nio.charset.Charset)") |
332 | | - public static byte[] afterGetBytes( |
333 | | - @CallSite.This @Nonnull final String self, |
334 | | - @CallSite.Argument @Nullable final Charset encoding, |
335 | | - @CallSite.Return @Nonnull final byte[] result) { |
336 | | - final CodecModule module = InstrumentationBridge.CODEC; |
337 | | - try { |
338 | | - if (module != null) { |
339 | | - module.onStringGetBytes(self, encoding == null ? null : encoding.name(), result); |
340 | | - } |
341 | | - } catch (final Throwable e) { |
342 | | - module.onUnexpectedException("afterGetBytes threw", e); |
343 | | - } |
344 | | - return result; |
345 | | - } |
346 | | - |
347 | 218 | @CallSite.After("java.lang.String java.lang.String.format(java.lang.String, java.lang.Object[])") |
348 | 219 | public static String afterFormat( |
349 | 220 | @CallSite.Argument(0) @Nullable final String pattern, |
@@ -378,20 +249,6 @@ public static String afterFormat( |
378 | 249 | return result; |
379 | 250 | } |
380 | 251 |
|
381 | | - @CallSite.After("char[] java.lang.String.toCharArray()") |
382 | | - public static char[] afterToCharArray( |
383 | | - @CallSite.This @Nonnull final String self, @CallSite.Return @Nonnull final char[] result) { |
384 | | - final PropagationModule module = InstrumentationBridge.PROPAGATION; |
385 | | - if (module != null) { |
386 | | - try { |
387 | | - module.taintObjectIfTainted(result, self, true, NOT_MARKED); |
388 | | - } catch (final Throwable e) { |
389 | | - module.onUnexpectedException("afterToCharArray threw", e); |
390 | | - } |
391 | | - } |
392 | | - return result; |
393 | | - } |
394 | | - |
395 | 252 | @CallSite.After("java.lang.String[] java.lang.String.split(java.lang.String)") |
396 | 253 | public static String[] afterSplit( |
397 | 254 | @CallSite.This @Nonnull final String self, |
|
0 commit comments