Apply ASLR with binary 70/148070/2
authorKichan Kwon <k_c.kwon@samsung.com>
Wed, 6 Sep 2017 11:42:28 +0000 (20:42 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 6 Sep 2017 11:45:13 +0000 (20:45 +0900)
- Address Space Layout Randomization
- To remove the vulnerability from fixed address

Change-Id: I474db5e0fc2f22461cea4d57d72001bc4b0e0ed7
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
CMakeLists.txt

index b19c96cfb4ab6154701755dbaf9461ef5286e43a..f9f2037ec126f609a52a10dbaf86954d34d59340 100644 (file)
@@ -20,8 +20,9 @@ FOREACH(flag ${${PKGNAME}_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
+SET(CMAKE_C_FLAGS_BASE "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 # BUILD_MODULE macro builds src/DIR_NAME
 # It will make libTITLE.so (TYPE == library) or TITLE (TYPE == binary)
@@ -39,12 +40,14 @@ MACRO(BUILD_MODULE TITLE DIR_NAME TYPE)
        ENDFOREACH()
 
        IF("${TYPE}" STREQUAL "library")
+               SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BASE}")
                ADD_LIBRARY(${TITLE} SHARED ${${TITLE}_HEADERS} ${${TITLE}_SOURCES})
                TARGET_LINK_LIBRARIES(${TITLE} ${${PKGNAME}_LDFLAGS})
                SET_TARGET_PROPERTIES(${TITLE} PROPERTIES
                        VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1)
                INSTALL(TARGETS ${TITLE} DESTINATION ${LIB_INSTALL_DIR})
        ELSE() # binary
+               SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BASE} -Wall -fPIE")
                ADD_EXECUTABLE(${TITLE} ${${TITLE}_HEADERS} ${${TITLE}_SOURCES})
                TARGET_LINK_LIBRARIES(${TITLE} ${COMMON_LIBRARY} ${${PKGNAME}_LDFLAGS} "-ldl")
                INSTALL(TARGETS ${TITLE} DESTINATION bin)