This is an automated email from the ASF dual-hosted git repository. pnoltes pushed a commit to branch feature/array_list_return_status_on_modification in repository https://gitbox.apache.org/repos/asf/celix.git
commit fae2eb4dfd28b7f7bc99ee64c25283538d978db1 Author: Pepijn Noltes <pepijnnol...@gmail.com> AuthorDate: Mon May 1 19:22:57 2023 +0200 Update aspritnf_ei to include vasprintf --- libs/error_injector/asprintf/CMakeLists.txt | 4 +++- libs/error_injector/asprintf/include/asprintf_ei.h | 2 ++ libs/error_injector/asprintf/src/asprintf_ei.cc | 11 ++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libs/error_injector/asprintf/CMakeLists.txt b/libs/error_injector/asprintf/CMakeLists.txt index ae4a711e..9a82cd0f 100644 --- a/libs/error_injector/asprintf/CMakeLists.txt +++ b/libs/error_injector/asprintf/CMakeLists.txt @@ -20,5 +20,7 @@ add_library(asprintf_ei STATIC src/asprintf_ei.cc) target_include_directories(asprintf_ei PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include) target_link_libraries(asprintf_ei PUBLIC Celix::error_injector) # It plays nicely with address sanitizer this way. -target_link_options(asprintf_ei INTERFACE LINKER:--wrap,asprintf) +target_link_options(asprintf_ei INTERFACE + LINKER:--wrap,vasprintf + LINKER:--wrap,asprintf) add_library(Celix::asprintf_ei ALIAS asprintf_ei) diff --git a/libs/error_injector/asprintf/include/asprintf_ei.h b/libs/error_injector/asprintf/include/asprintf_ei.h index 2c240b4b..63b56bcf 100644 --- a/libs/error_injector/asprintf/include/asprintf_ei.h +++ b/libs/error_injector/asprintf/include/asprintf_ei.h @@ -27,6 +27,8 @@ extern "C" { CELIX_EI_DECLARE(asprintf, int); +CELIX_EI_DECLARE(vasprintf, int); + #ifdef __cplusplus } #endif diff --git a/libs/error_injector/asprintf/src/asprintf_ei.cc b/libs/error_injector/asprintf/src/asprintf_ei.cc index 3a235091..1a3a2465 100644 --- a/libs/error_injector/asprintf/src/asprintf_ei.cc +++ b/libs/error_injector/asprintf/src/asprintf_ei.cc @@ -24,6 +24,15 @@ extern "C" { +int __real_vasprintf(char** buf, const char* format, va_list args); +CELIX_EI_DEFINE(vasprintf, int) +int __wrap_vasprintf(char** buf, const char* format, va_list args) { + errno = ENOMEM; + CELIX_EI_IMPL(vasprintf); + errno = 0; + return __real_vasprintf(buf, format, args); +} + int __real_asprintf(char** buf, const char* format, ...); CELIX_EI_DEFINE(asprintf, int) int __wrap_asprintf(char** buf, const char* format, ...) { @@ -32,7 +41,7 @@ int __wrap_asprintf(char** buf, const char* format, ...) { errno = 0; va_list args; va_start(args, format); - int rc = vasprintf(buf, format, args); + int rc = __real_vasprintf(buf, format, args); va_end(args); return rc; }