Skip to content

Commit 59182b4

Browse files
committed
Merge branch 'master' of https://github.com/Datadog/dd-trace-php into bob/windows
2 parents 494b753 + d2d9d2f commit 59182b4

File tree

142 files changed

+4352
-700
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+4352
-700
lines changed

.circleci/continue_config.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1222,7 +1222,7 @@ jobs:
12221222
command: |
12231223
export DEBIAN_FRONTEND=noninteractive
12241224
apt update
1225-
apt install -y wget sudo git g++ gcc gcovr cmake make curl libcurl4-gnutls-dev clang clang-tidy clang-format git php-dev php-cgi cargo
1225+
apt install -y wget sudo git g++ gcc gcovr cmake make curl libcurl4-gnutls-dev clang clang-tidy clang-format git php-dev php8.2-xml php-cgi cargo
12261226
- run: git config --global --add safe.directory /home/circleci/datadog/appsec/third_party/libddwaf
12271227
- run:
12281228
name: CMake
@@ -1967,6 +1967,7 @@ jobs:
19671967
DD_TRACE_AGENT_PORT: 80
19681968
DD_TRACE_AGENT_FLUSH_INTERVAL: 1000
19691969
INSTALL_TYPE: << parameters.install_type >>
1970+
RUST_BACKTRACE: 1
19701971
- <<: *IMAGE_DOCKER_REQUEST_REPLAYER
19711972
steps:
19721973
- restore_cache:
@@ -2038,6 +2039,7 @@ jobs:
20382039
VERIFY_APACHE: << parameters.verify_apache >>
20392040
INSTALL_MODE: << parameters.install_mode >>
20402041
INSTALL_TYPE: << parameters.install_type >>
2042+
RUST_BACKTRACE: 1
20412043
- <<: *IMAGE_DOCKER_REQUEST_REPLAYER
20422044
steps:
20432045
- restore_cache:
@@ -2120,6 +2122,8 @@ jobs:
21202122
- run:
21212123
name: Run tests
21222124
command: make -C dockerfiles/verify_packages test_installer
2125+
environment:
2126+
RUST_BACKTRACE: 1
21232127

21242128
randomized_tests:
21252129
working_directory: ~/datadog

.github/workflows/prof_asan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,5 @@ jobs:
6060
switch-php nts-asan
6161
cd profiling/tests
6262
cp -v $(php-config --prefix)/lib/php/build/run-tests.php .
63-
php run-tests.php --asan -d extension=datadog-profiling.so phpt
63+
php run-tests.php --show-diff --asan -d extension=datadog-profiling.so phpt
6464

Cargo.lock

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

appsec/.clang-tidy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
# readability-function-cognitive-complexity temporarily disabled until clang-tidy is fixed
33
# right now emalloc causes it to misbehave
4-
Checks: '*,-bugprone-reserved-identifier,-hicpp-signed-bitwise,-llvmlibc-restrict-system-libc-headers,-altera-unroll-loops,-hicpp-named-parameter,-cert-dcl37-c,-cert-dcl51-cpp,-read,-cppcoreguidelines-init-variables,-cppcoreguidelines-avoid-non-const-global-variables,-altera-id-dependent-backward-branch,-performance-no-int-to-ptr,-altera-struct-pack-align,-google-readability-casting,-modernize-use-trailing-return-type,-llvmlibc-implementation-in-namespace,-llvmlibc-callee-namespace,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-fuchsia-default-arguments-declarations,-fuchsia-overloaded-operator,-cppcoreguidelines-pro-type-union-access,-fuchsia-default-arguments-calls,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-google-readability-todo,-llvm-header-guard,-readability-function-cognitive-complexity,-readability-identifier-length,-modernize-macro-to-enum,-misc-include-cleaner,-bugprone-empty-catch'
4+
Checks: '*,-bugprone-reserved-identifier,-hicpp-signed-bitwise,-llvmlibc-restrict-system-libc-headers,-altera-unroll-loops,-hicpp-named-parameter,-cert-dcl37-c,-cert-dcl51-cpp,-read,-cppcoreguidelines-init-variables,-cppcoreguidelines-avoid-non-const-global-variables,-altera-id-dependent-backward-branch,-performance-no-int-to-ptr,-altera-struct-pack-align,-google-readability-casting,-modernize-use-trailing-return-type,-llvmlibc-implementation-in-namespace,-llvmlibc-callee-namespace,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-fuchsia-default-arguments-declarations,-fuchsia-overloaded-operator,-cppcoreguidelines-pro-type-union-access,-fuchsia-default-arguments-calls,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-google-readability-todo,-llvm-header-guard,-readability-function-cognitive-complexity,-readability-identifier-length,-modernize-macro-to-enum,-misc-include-cleaner,-bugprone-empty-catch,-cppcoreguidelines-avoid-do-while'
55
WarningsAsErrors: '*'
66
HeaderFilterRegex: ''
77
AnalyzeTemporaryDtors: false

appsec/cmake/extension.cmake

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
configure_file(src/extension/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/extension/version.h)
22

33
find_package(PhpConfig REQUIRED)
4+
message(STATUS "Configuring for PHP ${PhpConfig_VERNUM}")
45

56
set(EXT_SOURCE_DIR src/extension)
67

@@ -57,6 +58,25 @@ target_linker_flag_conditional(extension "-Wl,--version-script=${CMAKE_CURRENT_S
5758
target_linker_flag_conditional(extension -flat_namespace "-undefined suppress")
5859
target_linker_flag_conditional(extension -Wl,-exported_symbol -Wl,_get_module)
5960

61+
find_program(READELF_PROGRAM readelf)
62+
set(ENABLE_ASAN FALSE CACHE BOOL "Enable ASAN")
63+
if(READELF_PROGRAM)
64+
execute_process(COMMAND ${READELF_PROGRAM} -d ${PhpConfig_PHP_BINARY}
65+
COMMAND grep NEEDED
66+
COMMAND grep libasan
67+
RESULT_VARIABLE result
68+
OUTPUT_QUIET
69+
ERROR_QUIET)
70+
if(result EQUAL 0)
71+
set(ENABLE_ASAN TRUE CACHE BOOL "Enable ASAN" FORCE)
72+
endif()
73+
endif()
74+
if(ENABLE_ASAN)
75+
message(STATUS "Enabling ASAN")
76+
target_compile_options(extension PRIVATE -fsanitize=address)
77+
target_link_options(extension PRIVATE -fsanitize=address)
78+
endif()
79+
6080
patch_away_libc(extension)
6181

6282
if(DD_APPSEC_TESTING)

appsec/cmake/run-tests-wrapper.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export TEST_PHP_EXECUTABLE TEST_PHP_CGI_EXECUTABLE TEST_PHPDBG_EXECUTABLE \
2323
shift 3
2424

2525
function link_extensions {
26-
local extensions=(opcache posix pcntl sockets json)
26+
local extensions=(opcache posix pcntl sockets json xml)
2727
local -r link_ext_dir="${CMAKE_BINARY_DIR}/extensions"
2828
local -r extension_dir=$("$TEST_PHP_EXECUTABLE" -d display_errors=0 -r "echo ini_get('extension_dir');")
2929
mkdir -p "$link_ext_dir"
@@ -53,7 +53,7 @@ function link_extensions {
5353
EXTRA_FLAGS=()
5454
function set_extra_flags {
5555
local -r link_ext_dir="${CMAKE_BINARY_DIR}/extensions"
56-
local -r always_loaded_extensions=(json)
56+
local -r always_loaded_extensions=(json xml)
5757
for ext in "${always_loaded_extensions[@]}"; do
5858
if [[ -L "$link_ext_dir/$ext.so" ]]; then
5959
EXTRA_FLAGS+=('-d' "extension=$ext.so")

appsec/src/extension/commands/request_exec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dd_result dd_request_exec(dd_conn *nonnull conn, zval *nonnull data)
3838

3939
struct ctx ctx = {.data = data};
4040

41-
return dd_command_exec(conn, &_spec, &ctx);
41+
return dd_command_exec_req_info(conn, &_spec, &ctx.req_info);
4242
}
4343

4444
static dd_result _pack_command(mpack_writer_t *nonnull w, void *nonnull _ctx)

appsec/src/extension/commands/request_init.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
#include "../configuration.h"
1212
#include "../ddappsec.h"
1313
#include "../ddtrace.h"
14+
#include "../entity_body.h"
1415
#include "../ip_extraction.h"
1516
#include "../logging.h"
1617
#include "../msgpack_helpers.h"
1718
#include "../php_compat.h"
18-
#include "../request_body.h"
1919
#include "../string_helpers.h"
2020
#include "request_init.h"
2121
#include <mpack.h>
@@ -44,7 +44,7 @@ static const dd_command_spec _spec = {
4444
dd_result dd_request_init(
4545
dd_conn *nonnull conn, struct req_info_init *nonnull ctx)
4646
{
47-
return dd_command_exec(conn, &_spec, ctx);
47+
return dd_command_exec_req_info(conn, &_spec, &ctx->req_info);
4848
}
4949

5050
static dd_result _request_pack(mpack_writer_t *nonnull w, void *nonnull _ctx)
@@ -126,7 +126,7 @@ static dd_result _request_pack(mpack_writer_t *nonnull w, void *nonnull _ctx)
126126
if (send_raw_body && !ctx->superglob_equiv) {
127127
dd_mpack_write_lstr(w, "server.request.body.raw");
128128
zend_string *nonnull req_body =
129-
dd_request_body_buffered(DD_MAX_REQ_BODY_TO_BUFFER);
129+
dd_request_body_buffered(get_DD_APPSEC_MAX_BODY_BUFF_SIZE());
130130
dd_mpack_write_zstr(w, req_body);
131131
zend_string_release(req_body);
132132
}

0 commit comments

Comments
 (0)