[evas_gl_thread] check null about string value in 51/131451/2
authorJoogab Yun <joogab.yun@samsung.com>
Mon, 29 May 2017 08:51:07 +0000 (17:51 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Thu, 1 Jun 2017 09:03:41 +0000 (09:03 +0000)
glShaderSource_evgl_api_thread_cmd()

fixed crash at
ES2-CTS.gtf.GL2Tests.shader_source.shadersource_invalidshaderhandle
testing

Change-Id: Ie94ec331338bec525207bef63390be75c493f2fc

src/modules/evas/engines/gl_common/evas_gl_thread_gl.c

index b4feeb3..f4526a3 100644 (file)
       int i, len = 0; \
       for (i = 0; i < count; i++) \
         { \
-           if (length) len = length[i]; \
-           else        len = strlen(string[i]); \
-           if ((unsigned int)len + 1 > _mp_default_memory_size) \
+           if (length) { \
+               len = length[i]; \
+               if (len < 0) \
+                  len = string[i] ? strlen(string[i]) : 0; \
+           } \
+           else  { \
+               len = string[i] ? strlen(string[i]) : 0; \
+           } \
+           if (len == 0 || ((unsigned int)len + 1 > _mp_default_memory_size )) \
              { \
                 thread_mode = EVAS_GL_THREAD_MODE_FINISH; \
                 goto finish; \
            memset(thread_data->string_copied, 0x00, sizeof(char *) * count); \
            for (i = 0, len = 0; i < count; i++) \
              { \
-                if (length) len = length[i]; \
-                else        len = strlen(string[i]); \
+               if (length) { \
+                   len = length[i]; \
+                   if (len < 0) \
+                      len = string[i] ? strlen(string[i]) : 0; \
+               } \
+               else  { \
+                   len = string[i] ? strlen(string[i]) : 0; \
+               } \
                 thread_data->string_copied[i] = eina_mempool_malloc(_mp_default, len + 1); \
                 if (thread_data->string_copied[i]) \
                   { \