raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2ca5075193e27dbc30f26e478019719a5360cc84

commit 2ca5075193e27dbc30f26e478019719a5360cc84
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Tue Jul 5 15:56:43 2016 +0900

    efreet - fix mime file path messing with short paths like /
    
    this fixes T4015
    
    @fix
---
 src/lib/efreet/efreet_mime.c                           | 7 +++++--
 src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m | 1 +
 src/modules/evas/engines/gl_x11/evas_x_main.c          | 2 ++
 src/modules/evas/engines/wayland_egl/evas_wl_main.c    | 1 +
 4 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/lib/efreet/efreet_mime.c b/src/lib/efreet/efreet_mime.c
index adfa790..87ca8ef 100644
--- a/src/lib/efreet/efreet_mime.c
+++ b/src/lib/efreet/efreet_mime.c
@@ -711,10 +711,13 @@ efreet_mime_special_check(const char *file)
                parent[PATH_MAX - 1] = '\0';
 
                /* Kill any trailing slash */
-               parent[--path_len] = '\0';
+               if (parent[path_len - 1] == '/')
+                 parent[--path_len] = '\0';
 
                /* Truncate to last slash */
-               while (parent[--path_len] != '/') parent[path_len] = '\0';
+               while ((path_len > 0) &&
+                      (parent[--path_len] != '/'))
+                 parent[path_len] = '\0';
 
 #ifdef _WIN32
                if (!stat(file, &s2))
diff --git a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m 
b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m
index 15dc218..7df919f 100644
--- a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m
+++ b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m
@@ -120,6 +120,7 @@ eng_window_free(Evas_GL_Cocoa_Window *gw)
 void
 eng_window_use(Evas_GL_Cocoa_Window *gw)
 {
+   if ((gw) && (!gw->gl_context)) return;
    if (_evas_gl_cocoa_window != gw)
      {
         [[(NSOpenGLView*)gw->view openGLContext] makeCurrentContext];
diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c 
b/src/modules/evas/engines/gl_x11/evas_x_main.c
index 59361e1..f5e2edf 100644
--- a/src/modules/evas/engines/gl_x11/evas_x_main.c
+++ b/src/modules/evas/engines/gl_x11/evas_x_main.c
@@ -676,6 +676,8 @@ eng_window_use(Outbuf *gw)
    xwin = _tls_outbuf_get();
 
    glsym_evas_gl_preload_render_lock(eng_window_make_current, gw);
+   if ((gw) && (!gw->gl_context)) return;
+
 #ifdef GL_GLES
    if (xwin)
      {
diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c 
b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
index 489a475..14e13ff 100644
--- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c
+++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
@@ -233,6 +233,7 @@ eng_window_use(Outbuf *gw)
    Eina_Bool force = EINA_FALSE;
 
    glsym_evas_gl_preload_render_lock(eng_preload_make_current, gw);
+   if ((gw) && (!gw->gl_context)) return;
 
    if (_evas_gl_wl_window)
      {

-- 


Reply via email to