Fix safestringlib build on OSX

pull/3541/head
Jelte Fennema 2020-02-26 17:20:33 +01:00
parent 8ca55c739f
commit 92d7a40d1d
3 changed files with 20 additions and 12 deletions

View File

@ -145,14 +145,14 @@ set_target_properties(${PROJECT_NAME}_objlib
target_compile_definitions(${PROJECT_NAME}_objlib PRIVATE -DSTDC_HEADERS)
target_compile_options(${PROJECT_NAME}_objlib
PRIVATE -Wall -Wextra -Wsign-compare -Wformat-security)
target_compile_options(${PROJECT_NAME}_objlib
PRIVATE -Wno-unknown-pragmas -Wno-unused-parameter)
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 7)
target_compile_options(${PROJECT_NAME}_objlib
PRIVATE -Wno-implicit-fallthrough)
endif()
target_compile_options(${PROJECT_NAME}_objlib
PRIVATE -Wall -Wextra -Wsign-compare -Wformat-security)
target_compile_options(${PROJECT_NAME}_objlib
PRIVATE -Wstack-protector -Winit-self)
target_compile_options(${PROJECT_NAME}_objlib
@ -166,7 +166,10 @@ target_compile_options(${PROJECT_NAME}_objlib PRIVATE -fPIE -fPIC)
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 6)
target_compile_options(${PROJECT_NAME}_objlib PRIVATE -mmitigate-rop)
endif()
if(APPLE)
elseif(UNIX)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack -z relro -z now")
endif()
option(BUILD_ERROR_ON_WARNING "Fail compilation on warning" OFF)

View File

@ -97,7 +97,12 @@ extern errno_t wmemmove_s(wchar_t *dest, rsize_t dmax,
/* set bytes */
extern errno_t memset_s(void *dest, rsize_t dmax, uint8_t value);
/* NOTE: This name is changed from memset_s to memset8_s out because it does
* not match with the C11 declaration of memset_s on OSX. The upstream issue
* can be found here:
* https://github.com/intel/safestringlib/issues/14
*/
extern errno_t memset8_s(void *dest, rsize_t dmax, uint8_t value);
/* set uint16_t */
extern errno_t memset16_s(uint16_t *dest, rsize_t dmax, uint16_t value);

View File

@ -1,5 +1,5 @@
/*------------------------------------------------------------------
* memset_s
* memset8_s
*
* October 2008, Bo Berry
*
@ -37,12 +37,12 @@
/**
* NAME
* memset_s
* memset8_s
*
* SYNOPSIS
* #include "safe_mem_lib.h"
* errno_t
* memset_s(void *dest, rsize_t len, uint8_t value)
* memset8_s(void *dest, rsize_t len, uint8_t value)
*
* DESCRIPTION
* Sets len bytes starting at dest to the specified value.
@ -78,22 +78,22 @@
*
*/
errno_t
memset_s (void *dest, rsize_t len, uint8_t value)
memset8_s (void *dest, rsize_t len, uint8_t value)
{
if (dest == NULL) {
invoke_safe_mem_constraint_handler("memset_s: dest is null",
invoke_safe_mem_constraint_handler("memset8_s: dest is null",
NULL, ESNULLP);
return (RCNEGATE(ESNULLP));
}
if (len == 0) {
invoke_safe_mem_constraint_handler("memset_s: len is 0",
invoke_safe_mem_constraint_handler("memset8_s: len is 0",
NULL, ESZEROL);
return (RCNEGATE(ESZEROL));
}
if (len > RSIZE_MAX_MEM) {
invoke_safe_mem_constraint_handler("memset_s: len exceeds max",
invoke_safe_mem_constraint_handler("memset8_s: len exceeds max",
NULL, ESLEMAX);
return (RCNEGATE(ESLEMAX));
}
@ -102,4 +102,4 @@ memset_s (void *dest, rsize_t len, uint8_t value)
return (RCNEGATE(EOK));
}
EXPORT_SYMBOL(memset_s)
EXPORT_SYMBOL(memset8_s)