You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2023/05/02 09:50:50 UTC
[celix] 02/04: Update aspritnf_ei to include vasprintf
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 <pe...@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;
}