Skip to content

Commit

Permalink
Amend segmentation fault on PHP 7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
estringana committed Dec 12, 2023
1 parent 813e40d commit dbb9ebd
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions appsec/src/extension/tags.c
Original file line number Diff line number Diff line change
Expand Up @@ -1157,18 +1157,39 @@ static PHP_FUNCTION(datadog_appsec_push_params)
}

zval parameters_zv;
ZVAL_ARR(&parameters_zv, zend_new_array(1));
zend_array *parameters_arr = zend_new_array(1);
if (parameters_arr == NULL) {
mlog_g(dd_log_debug, "Could not create array");
return;
}
ZVAL_ARR(&parameters_zv, parameters_arr);
zend_string *key =
zend_string_init(ZEND_STRL("server.request.path_params"), 0);
zend_hash_add(Z_ARRVAL(parameters_zv), key, parameters);
if (key == NULL) {
zval_ptr_dtor(&parameters_zv);
mlog_g(dd_log_debug, "Error creating key");
return;
}

zval *res = zend_hash_add(Z_ARRVAL(parameters_zv), key, parameters);
if (res == NULL) {
zend_string_release(key);
zval_ptr_dtor(&parameters_zv);
mlog_g(dd_log_debug, "Parameters could not be added");
return;
}
Z_ADDREF_P(parameters);

dd_conn *conn = dd_helper_mgr_cur_conn();
if (conn == NULL) {
zend_string_release(key);
zval_ptr_dtor(&parameters_zv);
mlog_g(dd_log_debug, "No connection; skipping push_params");
RETURN_FALSE;
return;
}

dd_request_exec(conn, &parameters_zv);

zval_ptr_dtor(&parameters_zv);
zend_string_release(key);
}
Expand Down

0 comments on commit dbb9ebd

Please sign in to comment.