Build: Fix loading path of real vendor driver. 31/94131/1 accepted/tizen/3.0/ivi/20161103.121333 accepted/tizen/3.0/mobile/20161103.121105 accepted/tizen/3.0/tv/20161103.121315 accepted/tizen/3.0/wearable/20161103.121322 accepted/tizen/common/20161028.114823 accepted/tizen/ivi/20161028.152859 accepted/tizen/mobile/20161028.152809 accepted/tizen/tv/20161028.152826 accepted/tizen/wearable/20161028.152841 submit/tizen/20161028.071840 submit/tizen_3.0/20161103.052640
authorMun, Gwan-gyeong <kk.moon@samsung.com>
Thu, 27 Oct 2016 06:09:31 +0000 (15:09 +0900)
committerMun, Gwan-gyeong <kk.moon@samsung.com>
Thu, 27 Oct 2016 06:09:31 +0000 (15:09 +0900)
 - before: it loads from /usr/lib/driver
 - after : 32bit case; /usr/lib/driver
           64bit case; /usr/lib64/driver
   and it uses absolute path becasue, loading a library dynamically without specifying an absolute path could allow an attacker to link a malicious library by changing `$LD_LIBRARY_PATH` or other aspects of the program's execution environment

Change-Id: I02c8ae6d093cade42186da857335655ff93ac236

CMakeLists.txt
Makefile [deleted file]
packaging/coregl.spec
src/coregl.c

index 63d3ab3..074b143 100644 (file)
@@ -22,14 +22,23 @@ IF(${BUILD_ARCH} MATCHES "aarch64")
 SET(LIB "lib64")
 SET(LIBDIR "/usr/lib64")
 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib64/libCOREGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib64/driver/libEGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib64/driver/libGLESv2.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib64/driver/libGLESv1_CM.so\"")
 ELSEIF(${BUILD_ARCH} MATCHES "x86_64")
 SET(LIB "lib64")
 SET(LIBDIR "/usr/lib64")
 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib64/libCOREGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib64/driver/libEGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib64/driver/libGLESv2.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib64/driver/libGLESv1_CM.so\"")
 ELSE(${BUILD_ARCH} MATCHES "aarch64")
 SET(LIB "lib")
 SET(LIBDIR "/usr/lib")
 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib/libCOREGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib/driver/libEGL.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib/driver/libGLESv2.so\"")
+ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib/driver/libGLESv1_CM.so\"")
 ENDIF(${BUILD_ARCH} MATCHES "aarch64")
 
 #################################################################
@@ -49,14 +58,6 @@ ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 EXEC_PROGRAM(date OUTPUT_VARIABLE COMPILE_DATE)
 ADD_DEFINITIONS("-D_COREGL_COMPILE_DATE=\"${COMPILE_DATE}\"")
 
-IF(USE_ADRENO)
-ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib/egl/libEGL.so\"")
-ADD_DEFINITIONS("-D_COREGL_VENDOR_GL_LIB_PATH=\"/usr/lib/egl/libGLESv2.so\"")
-ELSE(USE_ADRENO)
-ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"${LIBDIR}/driver/libEGL.so\"")
-ADD_DEFINITIONS("-D_COREGL_VENDOR_GL_LIB_PATH=\"${LIBDIR}/driver/libGLESv2.so\"")
-ENDIF(USE_ADRENO)
-
 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -O2 -fPIC -Wall -std=c99 -D_COREGL_EMBEDDED_GL")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
@@ -113,8 +114,6 @@ SET(GLES2_SRCS_common
                src/wraps/coregl_gl_common.c
 )
 
-#SET(HEADERS_common src/coregl_export.h src/coregl_fastpath.h src/coregl_fastpath_state.h src/coregl.h src/coregl_internal.h src/coregl_thread_pthread.h src/coregl_wrappath.h)
-
 INCLUDE(FindPkgConfig)
 pkg_check_modules(dlog REQUIRED dlog)
 pkg_check_modules(libpng REQUIRED libpng)
@@ -154,9 +153,3 @@ INSTALL(TARGETS ${COREGL} DESTINATION lib COMPONENT RuntimeLibraries)
 INSTALL(TARGETS ${EGL} DESTINATION lib COMPONENT RuntimeLibraries)
 INSTALL(TARGETS ${GLES1} DESTINATION lib COMPONENT RuntimeLibraries)
 INSTALL(TARGETS ${GLES2} DESTINATION lib COMPONENT RuntimeLibraries)
-
-#FOREACH(hfile ${HEADERS_common})
-#      INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/${hfile} DESTINATION include/coregl)
-#ENDFOREACH(hfile)
-#INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/coregl.h DESTINATION include)
-
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 9075165..0000000
--- a/Makefile
+++ /dev/null
@@ -1,100 +0,0 @@
-CC = gcc
-
-COMPILE_DATE = "\"`git log -1 --pretty=format:%ci`\""
-
-VENDOR_EGL_LIB_PATH = "\"/usr/lib/driver/libEGL.so\""
-VENDOR_GL_LIB_PATH = "\"/usr/lib/driver/libGLESv2.so\""
-
-CFLAGS = -g -O2 -fvisibility=hidden -fPIC -fno-strict-aliasing -Wall -std=c99 -D_COREGL_COMPILE_DATE=$(COMPILE_DATE)
-CFLAGS += -I./include_KHR
-CFLAGS += -D_COREGL_VENDOR_EGL_LIB_PATH=$(VENDOR_EGL_LIB_PATH)
-CFLAGS += -D_COREGL_VENDOR_GL_LIB_PATH=$(VENDOR_GL_LIB_PATH)
-CFLAGS += `pkg-config --cflags dlog`
-
-LDFLAGS = -g -O2 -fvisibility=hidden -Wall -std=c99 -ldl -lpthread
-LDFLAGS += `pkg-config --libs dlog`
-
-
-SOURCES = \
-               src/coregl.c \
-               src/coregl_thread_pthread.c \
-               src/coregl_trace.c \
-               src/coregl_export.c \
-               src/coregl_export_egl.c \
-               src/coregl_export_gl.c \
-               src/modules/coregl_module.c \
-               \
-               src/modules/tracepath/coregl_tracepath.c \
-               src/modules/tracepath/coregl_tracepath_egl.c \
-               src/modules/tracepath/coregl_tracepath_gl.c \
-               \
-               src/modules/fastpath/coregl_fastpath.c \
-               src/modules/fastpath/coregl_fastpath_egl.c \
-               src/modules/fastpath/coregl_fastpath_gl.c \
-               \
-               src/modules/appopt/coregl_appopt.c \
-               src/modules/appopt/coregl_appopt_egl.c \
-               src/modules/appopt/coregl_appopt_gl.c
-
-BIN = libCOREGL.so
-
-COREGL_MAJOR = 4
-COREGL_MINOR = 0
-
-EGL_MAJOR = 1
-EGL_MINOR = 4
-
-GLESv1_MAJOR = 1
-GLESv1_MINOR = 1
-
-GLESv2_MAJOR = 2
-GLESv2_MINOR = 0
-
-WRAP_EGL = libEGL.so
-WRAP_GLES1 = libGLESv1_CM.so
-WRAP_GLES2 = libGLESv2.so
-
-OUTPUT_BIN = $(BIN).$(COREGL_MAJOR).$(COREGL_MINOR)
-OUTPUT_WRAP_EGL = $(WRAP_EGL).$(EGL_MAJOR).$(EGL_MINOR)
-OUTPUT_WRAP_GLES1 = $(WRAP_GLES1).$(GLESv1_MAJOR).$(GLESv1_MINOR)
-OUTPUT_WRAP_GLES2 = $(WRAP_GLES2).$(GLESv2_MAJOR).$(GLESv2_MINOR)
-
-OBJECTS = $(SOURCES:.c=.o)
-
-all : $(OUTPUT_BIN) $(OUTPUT_WRAP_EGL) $(OUTPUT_WRAP_GLES1) $(OUTPUT_WRAP_GLES2)
-       cp src/headers/egl.h include/EGL/def_egl.h
-       cp src/headers/gl.h include/GLES3/def_gl.h
-       cp src/headers/sym_egl.h include/EGL/sym_egl.h
-       cp src/headers/sym_gl1.h include/GLES3/sym_gl1.h
-       cp src/headers/sym_gl2.h include/GLES3/sym_gl2.h
-
-$(OUTPUT_BIN) : $(OBJECTS)
-       @mkdir -p lib
-       $(CC) -shared -o lib/$(OUTPUT_BIN) $(OBJECTS) $(LDFLAGS)
-       ln -sf $(OUTPUT_BIN) lib/$(BIN).$(COREGL_MAJOR)
-       ln -sf $(BIN).$(COREGL_MAJOR) lib/$(BIN)
-
-$(OUTPUT_WRAP_EGL) :
-       @mkdir -p lib
-       $(CC) -shared -o lib/$(OUTPUT_WRAP_EGL) src/wraps/coregl_egl.c $(CFLAGS) $(LDFLAGS)
-       ln -sf $(OUTPUT_WRAP_EGL) lib/$(WRAP_EGL).$(EGL_MAJOR)
-       ln -sf $(WRAP_EGL).$(EGL_MAJOR) lib/$(WRAP_EGL)
-
-$(OUTPUT_WRAP_GLES1) :
-       @mkdir -p lib
-       $(CC) -shared -o lib/$(OUTPUT_WRAP_GLES1) src/wraps/coregl_gl1.c src/wraps/coregl_gl_common.c $(CFLAGS) $(LDFLAGS)
-       ln -sf $(OUTPUT_WRAP_GLES1) lib/$(WRAP_GLES1).$(GLESv1_MAJOR)
-       ln -sf $(WRAP_GLES1).$(GLESv1_MAJOR) lib/$(WRAP_GLES1)
-
-$(OUTPUT_WRAP_GLES2) :
-       @mkdir -p lib
-       $(CC) -shared -o lib/$(OUTPUT_WRAP_GLES2) src/wraps/coregl_gl2.c src/wraps/coregl_gl_common.c $(CFLAGS) $(LDFLAGS)
-       ln -sf $(OUTPUT_WRAP_GLES2) lib/$(WRAP_GLES2).$(GLESv2_MAJOR)
-       ln -sf $(WRAP_GLES2).$(GLESv2_MAJOR) lib/$(WRAP_GLES2)
-
-%.o : %.c
-       $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
-
-clean :
-       rm -f $(OBJECTS) lib/*
-
index d83b233..4464a33 100644 (file)
@@ -1,5 +1,3 @@
-%define BYPASS_COREGL 0
-
 Name:                  coregl
 Summary:               CoreGL FastPath Optimization
 Version:               0.1.10
@@ -41,10 +39,8 @@ packages that requires OpenGL ES 1.1 or 2.0 acceleration.
 %setup -q -n %{name}-%{version}
 
 %build
-%if "%{BYPASS_COREGL}" != "1"
 cmake . -DCMAKE_INSTALL_PREFIX=/usr %{?extra_option}
 make %{?jobs:-j%jobs}
-%endif
 
 %install
 
index dc5c110..4296803 100644 (file)
@@ -15,18 +15,6 @@ void               *gl_lib_handle;
 int                 driver_gl_version = 0;
 static int          api_gl_version = COREGL_GLAPI_2;
 
-#ifndef _COREGL_VENDOR_EGL_LIB_PATH
-#define _COREGL_VENDOR_EGL_LIB_PATH "/usr/lib/driver/libEGL.so" /* DEFAULT EGL PATH */
-#endif
-
-#ifndef _COREGL_VENDOR_GLV2_LIB_PATH
-#define _COREGL_VENDOR_GLV2_LIB_PATH "/usr/lib/driver/libGLESv2.so" /* DEFAULT GL PATH */
-#endif
-
-#ifndef _COREGL_VENDOR_GLV1_LIB_PATH
-#define _COREGL_VENDOR_GLV1_LIB_PATH "/usr/lib/driver/libGLESv1_CM.so" /* GLV1 PATH */
-#endif
-
 // Symbol definition for real
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*_sym_##FUNC_NAME) PARAM_LIST;
 #include "headers/sym.h"