From 39dd7d1a02f4dd459ead18694d009ad5bd24fc96 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 27 Sep 2026 22:42:59 -0400 Subject: [PATCH 1/2] libdatadog update to 836ff60a MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/140434026 Full CI result: ❌ 1 job(s) failed --- libdatadog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libdatadog b/libdatadog index 817cf82087..836ff60ac4 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit 817cf820879a76fdd8eeb3ecb47e04e8f8ecbd6c +Subproject commit 836ff60ac46244268c6b62b5246132a08cf09512 From 70909fa71beb30546d12151d78a5c68180517336 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 27 Sep 2026 23:04:00 -0400 Subject: [PATCH 2/2] libdatadog update to 836ff60a [no-ci-feedback] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/140434799 Full CI result: ❌ 246 job(s) failed --- Cargo.toml | 65 ++++++++++++++++--- .../php/mock_agent/rem_cfg/Capability.groovy | 3 +- .../php/integration/RemoteConfigTests.groovy | 1 - components-rs/common.h | 1 - components-rs/remote_config.rs | 1 - 5 files changed, 56 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c118cd9186..e81f823862 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -154,42 +154,60 @@ panic = "abort" inherits = "release" [workspace.dependencies] +# Mirrors `[workspace.dependencies]` in libdatadog/Cargo.toml: libdatadog crates +# built as members of this workspace inherit their dependencies from here. +# Keep in sync when updating libdatadog. + allocator-api2 = { version = "0.2.21", default-features = false } anyhow = { version = "1.0", default-features = false } arbitrary = { version = "1.3", default-features = false } arc-swap = { version = "1.7.1", default-features = false } -arrayref = { version = "0.3.7", default-features = false } assert_no_alloc = { version = "1.1.2", default-features = false } async-trait = { version = "0.1", default-features = false } base64 = { version = "0.22", default-features = false } bincode = { version = "1.3.3", default-features = false } +bindgen = { version = "0.71", default-features = false } bitmaps = { version = "3.2.0", default-features = false } blazesym = { version = "=0.2.3", default-features = false } +blazesym-c = { version = "=0.1.7", default-features = false } bolero = { version = "0.13.4", default-features = false } byteorder = { version = "1.5", default-features = false } bytes = { version = "1.11", default-features = false } cadence = { version = "1.3.0", default-features = false } cargo-platform = { version = "=0.1.7", default-features = false } cargo_metadata = { version = "0.18.1", default-features = false } +cbindgen = { version = "0.29", default-features = false } cc = { version = "1.1.31", default-features = false } chrono = { version = "0.4.38", default-features = false } clap = { version = "4.3.21", default-features = false } +cmake = { version = "0.1.50", default-features = false } +colored = { version = "2", default-features = false } console-subscriber = { version = "0.5", default-features = false } const_format = { version = "0.2.34", default-features = false } constcat = { version = "0.4.1", default-features = false } +# allow(workspace-deps-features): some default features are necessary: without +# `cargo_bench_support` the harness refuses to run under a plain `cargo bench`, +# and `plotters`/`rayon` are required for report plots. All benches want them, +# and criterion is a dev-dependency anyway, which doesn't impact release binary +# size. criterion = { version = "0.5.1", default-features = true } crossbeam-channel = { version = "0.5.15", default-features = false } crossbeam-queue = { version = "0.3.11", default-features = false } crossbeam-utils = { version = "0.8.21", default-features = false } +current_platform = { version = "0.2.0", default-features = false } cxx = { version = "1.0", default-features = false } cxx-build = { version = "1.0", default-features = false } derive_more = { version = "2.0.0", default-features = false } duplicate = { version = "2.0.1", default-features = false } either = { version = "1.13.0", default-features = false } elf = { version = "0.7", default-features = false } +env_logger = { version = "0.10", default-features = false } errno = { version = "0.3", default-features = false } fastrand = { version = "2", default-features = false } faststr = { version = "0.2.23", default-features = false } +# allow(workspace-deps-features): flate2 without a backend feature is unusable +# (no compression backend at all). `rust_backend` (pure Rust, no C dependency) +# is the baseline we want everywhere. flate2 = { version = "1.0", default-features = false, features = ["rust_backend"] } fluent-uri = { version = "0.4.1", default-features = false } function_name = { version = "0.3.0", default-features = false } @@ -207,14 +225,24 @@ hex = { version = "0.4", default-features = false } http = { version = "1.1", default-features = false } http-body = { version = "1", default-features = false } http-body-util = { version = "0.1", default-features = false } +# allow(workspace-deps-features): httpmock 0.8.0-alpha.1 does not compile +# without the `cookies` feature: its own `readers.rs` calls `req.cookies()` +# unconditionally while that method is gated behind `cookies`. Keep it as a +# baseline at the workspace level. httpmock = { version = "0.8.0-alpha.1", default-features = false, features = ["cookies"] } httparse = { version = "1.9", default-features = false } -hyper = { version = "1.6", default-features = false } +hyper = { version = "1.11", default-features = false } hyper-rustls = { version = "0.27.7", default-features = false } hyper-util = { version = "0.1.10", default-features = false } indexmap = { version = "2.11", default-features = false } io-lifetimes = { version = "1.0", default-features = false } itoa = { version = "1.0", default-features = false } +kernel32-sys = { version = "0.2.2", default-features = false } +# allow(workspace-deps-features): libc's only default feature is `std`, which +# is needed by virtually every consumer (libc itself says that not using this +# feature to link libc in a `no-std` environment is not the recommended way, +# and that this possibility will be gone in future versions). We enable it by +# default for everyone. libc = { version = "0.2", default-features = true } libdd-libunwind-sys = { version = "1.0.3", default-features = false } log = { version = "0.4.21", default-features = false } @@ -224,7 +252,6 @@ maplit = { version = "1.0", default-features = false } md5 = { version = "0.7.0", default-features = false } memfd = { version = "0.6", default-features = false } memory-stats = { version = "1.2.0", default-features = false } -microseh = { version = "0.1.1", default-features = false } mime = { version = "0.3.16", default-features = false } multer = { version = "3.1", default-features = false } nix = { version = "0.29", default-features = false } @@ -232,11 +259,13 @@ num-derive = { version = "0.4.2", default-features = false } num-traits = { version = "0.2.19", default-features = false } object = { version = "0.36", default-features = false } once_cell = { version = "1.18", default-features = false } +opentelemetry-proto = { version = "0.33", default-features = false } os_info = { version = "3.14.0", default-features = false } page_size = { version = "0.6.0", default-features = false } parking_lot = { version = "0.12", default-features = false } paste = { version = "1", default-features = false } percent-encoding = { version = "2.1", default-features = false } +pico-args = { version = "0.5.0", default-features = false } pin-project = { version = "1", default-features = false } portable-atomic = { version = "1.6.0", default-features = false } prctl = { version = "1.0.0", default-features = false } @@ -247,7 +276,8 @@ proptest = { version = "1", default-features = false } prost = { version = "0.14.1", default-features = false } prost-build = { version = "0.14.1", default-features = false } protoc-bin-vendored = { version = "3.0.0", default-features = false } -pyo3 = { version = "0.28", default-features = false } +pyo3 = { version = "0.29", default-features = false } +quick-xml = { version = "0.37", default-features = false } quote = { version = "1", default-features = false } rand = { version = "0.8", default-features = false } rand_chacha = { version = "0.3.1", default-features = false } @@ -261,16 +291,16 @@ rmp-serde = { version = "1.3.0", default-features = false } rmpv = { version = "1.3.0", default-features = false } rustc-hash = { version = "2.1.1", default-features = false } rustls = { version = "0.23", default-features = false } -rustls-native-certs = { version = ">=0.8.1, <0.8.3", default-features = false } rustls-platform-verifier = { version = "0.6", default-features = false } rustls-webpki = { version = ">=0.103.13", default-features = false } schemars = { version = "0.8.21", default-features = false } semver = { version = "1.0", default-features = false } -sendfd = { version = "0.4", default-features = false } serde = { version = "1.0", default-features = false } -serde-bool = { version = "0.1.3", default-features = false } serde-transcode = { version = "1.1", default-features = false } serde_bytes = { version = "0.11.9", default-features = false } +# allow(workspace-deps-features): serde_json requires at least one of `std` or +# `alloc`. We set `alloc` here as the minimal working baseline, and to avoid +# repeating alloc everywhere. Enabling `std` on top of it is fine. serde_json = { version = "1.0", default-features = false, features = ["alloc"] } serde_with = { version = "3.11.0", default-features = false } serde_yaml = { version = "0.9.34", default-features = false } @@ -285,16 +315,23 @@ symbolic-common = { version = "12.8.0", default-features = false } symbolic-demangle = { version = "12.8.0", default-features = false } syn = { version = "^2", default-features = false } sys-info = { version = "0.9.0", default-features = false } +sysinfo = { version = "0.29.8", default-features = false } +tar = { version = "0.4.45", default-features = false } target-triple = { version = "0.1.4", default-features = false } -tempfile = { version = "3.13", default-features = false, features = ["getrandom"] } +# allow(workspace-deps-features): without `getrandom`, tempfile seeds its +# temp-name RNG weakly and its own docs flag that an attacker may then be able +# to predict the file names. We enable it by default for security reasons. +tempfile = { version = "3.13", default-features = false, features = [ + "getrandom", +] } test-case = { version = "2.2", default-features = false } thin-vec = { version = "0.2", default-features = false } thiserror = { version = "2.0.3", default-features = false } thread_local = { version = "1.1", default-features = false } time = { version = "0.3", default-features = false } -tokio = { version = "1.36", default-features = false } -tokio-rustls = { version = "0.26", default-features = false } +tokio = { version = "1.49", default-features = false } tokio-util = { version = "0.7.11", default-features = false } +toml = { version = "0.8.19", default-features = false } tonic = { version = "0.14", default-features = false } tower-service = { version = "0.3", default-features = false } tracing = { version = "0.1", default-features = false } @@ -305,13 +342,21 @@ tuf = { package = "libdd-tuf", version = "0.3.1", default-features = false } url = { version = "2.5.0", default-features = false } urlencoding = { version = "2.1.3", default-features = false } uuid = { version = "1.7.0", default-features = false } +wait-timeout = { version = "0.2", default-features = false } +walkdir = { version = "2.4", default-features = false } wasm-bindgen-futures = { version = "0.4", default-features = false } +wasm-bindgen-test = { version = "=0.3.50", default-features = false } web-time = { version = "1", default-features = false } +winapi = { version = "0.3.9", default-features = false } +windows = { version = "0.59.0", default-features = false } +windows-sys = { version = "0.52", default-features = false } winver = { version = "1.0.0", default-features = false } +zip = { version = "4.0.0", default-features = false } zrip = { version = "=0.6.0", default-features = false } zstd = { version = "0.13", default-features = false } zwohash = { version = "0.1.2", default-features = false } + [workspace.lints] [lints.rust] diff --git a/appsec/tests/integration/src/main/groovy/com/datadog/appsec/php/mock_agent/rem_cfg/Capability.groovy b/appsec/tests/integration/src/main/groovy/com/datadog/appsec/php/mock_agent/rem_cfg/Capability.groovy index 0ab78cd363..71bf05861a 100644 --- a/appsec/tests/integration/src/main/groovy/com/datadog/appsec/php/mock_agent/rem_cfg/Capability.groovy +++ b/appsec/tests/integration/src/main/groovy/com/datadog/appsec/php/mock_agent/rem_cfg/Capability.groovy @@ -36,8 +36,7 @@ enum Capability { ASM_NETWORK_FINGERPRINT(34), ASM_HEADER_FINGERPRINT(35), ASM_DD_MULTICONFIG(42), - ASM_TRACE_TAGGING_RULES(43), - ASM_RAW_RESPONSE_BODY(49) + ASM_TRACE_TAGGING_RULES(43) final int ordinal diff --git a/appsec/tests/integration/src/test/groovy/com/datadog/appsec/php/integration/RemoteConfigTests.groovy b/appsec/tests/integration/src/test/groovy/com/datadog/appsec/php/integration/RemoteConfigTests.groovy index 5bf42e8e4d..0f66f5620c 100644 --- a/appsec/tests/integration/src/test/groovy/com/datadog/appsec/php/integration/RemoteConfigTests.groovy +++ b/appsec/tests/integration/src/test/groovy/com/datadog/appsec/php/integration/RemoteConfigTests.groovy @@ -103,7 +103,6 @@ class RemoteConfigTests { Capability.ASM_HEADER_FINGERPRINT, Capability.ASM_PROCESSOR_OVERRIDES, Capability.ASM_CUSTOM_DATA_SCANNERS, - Capability.ASM_RAW_RESPONSE_BODY, ].each { assert it in capSet } doReq.call(403) diff --git a/components-rs/common.h b/components-rs/common.h index c75214c4be..d9f89bd27a 100644 --- a/components-rs/common.h +++ b/components-rs/common.h @@ -423,7 +423,6 @@ typedef enum ddog_RemoteConfigCapabilities { DDOG_REMOTE_CONFIG_CAPABILITIES_FFE_FLAG_CONFIGURATION_RULES = 46, DDOG_REMOTE_CONFIG_CAPABILITIES_DD_DATA_STREAMS_TRANSACTION_EXTRACTORS = 47, DDOG_REMOTE_CONFIG_CAPABILITIES_LLM_OBS_ACTIVATION = 48, - DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_RAW_RESPONSE_BODY = 49, } ddog_RemoteConfigCapabilities; typedef enum ddog_RemoteConfigProduct { diff --git a/components-rs/remote_config.rs b/components-rs/remote_config.rs index eadb02b017..1697835aa1 100644 --- a/components-rs/remote_config.rs +++ b/components-rs/remote_config.rs @@ -196,7 +196,6 @@ pub unsafe extern "C" fn ddog_init_remote_config(flags: RemoteConfigFlags) { RemoteConfigCapabilities::AsmHeaderFingerprint, RemoteConfigCapabilities::AsmProcessorOverrides, RemoteConfigCapabilities::AsmCustomDataScanners, - RemoteConfigCapabilities::AsmRawResponseBody, ] .iter() .for_each(|c| DATADOG_REMOTE_CONFIG_CAPABILITIES.push(*c));