diff --git a/postject-api.h b/postject-api.h index 14899ee..aa17e8d 100644 --- a/postject-api.h +++ b/postject-api.h @@ -27,7 +27,7 @@ struct postject_options { const char* pe_resource_name; }; -static void postject_options_init(struct postject_options* options) { +inline void postject_options_init(struct postject_options* options) { options->elf_section_name = NULL; options->macho_framework_name = NULL; options->macho_section_name = NULL; @@ -93,7 +93,6 @@ static const void* postject_find_resource( return ptr; #elif defined(__linux__) - void* ptr = NULL; if (options != NULL && options->elf_section_name != NULL) { name = options->elf_section_name; @@ -151,7 +150,7 @@ static const void* postject_find_resource( if (resource_name == NULL) { return NULL; } - strcpy(resource_name, name); + strcpy_s(resource_name, strlen(name) + 1, name); CharUpperA(resource_name); // Uppercases inplace } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 45f78e6..6ee70bd 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,3 +5,11 @@ project(postject-tests) add_executable(c_test test.c) add_executable(cpp_test test.cpp) + +if(WIN32) + target_compile_options(c_test PRIVATE /W4 /WX) + target_compile_options(cpp_test PRIVATE /W4 /WX /EHsc) +else() + target_compile_options(c_test PRIVATE -Wall -Werror) + target_compile_options(cpp_test PRIVATE -Wall -Werror) +endif() diff --git a/test/test.c b/test/test.c index e43d44d..5eb5f4f 100644 --- a/test/test.c +++ b/test/test.c @@ -10,7 +10,11 @@ int main() { if (ptr && size > 0) { char* str = (char*)malloc(size + 1); memset(str, 0, size + 1); +#if defined(_WIN32) + strncpy_s(str, size + 1, ptr, size); +#else strncpy(str, ptr, size); +#endif printf("%s\n", str); } else { printf("Hello world\n");