jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1a9b58f083de577e5a81483b899da83a481e06c7

commit 1a9b58f083de577e5a81483b899da83a481e06c7
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Tue Mar 18 14:48:44 2014 +0900

    Evas gl: Fix buffer dump filenames
    
    evas_gl_common_buffer_dump can be used to dump all frames into
    a series of PNG files. But the filename contained some garbage
    characters (and potential segv, too).
    
    (cherry picked from commit a0f886138ed5a28d0d1596df3b805fca06d1ae31)
---
 src/modules/evas/engines/gl_common/evas_gl_context.c | 6 +++++-
 src/modules/evas/engines/gl_x11/evas_engine.c        | 3 +--
 src/modules/evas/engines/wayland_egl/evas_engine.c   | 3 +--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c 
b/src/modules/evas/engines/gl_common/evas_gl_context.c
index 2e447d9..f044a2f 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -3246,7 +3246,11 @@ evas_gl_common_buffer_dump(Evas_Engine_GL_Context *gc, 
const char* dname, const
    char fname[100];
    int ok = 0;
 
-   sprintf(fname, "./%s/win_%s-fc_%03d_%s.png", dname, buf_name, frame, 
suffix);
+   if (suffix)
+     snprintf(fname, sizeof(fname), "./%s/win_%s-fc_%03d_%s.png", dname, 
buf_name, frame, suffix);
+   else
+     snprintf(fname, sizeof(fname), "./%s/win_%s-fc_%03d.png", dname, 
buf_name, frame);
+   fname[sizeof(fname) - 1] = '\0';
 
    data1 = (DATA32 *)malloc(gc->w * gc->h * sizeof(DATA32));
    data2 = (DATA32 *)malloc(gc->w * gc->h * sizeof(DATA32));
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 82ffd05..1b0f51b 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1576,7 +1576,6 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
         if (swap_buffer_debug)
           {
              char fname[100];
-             char suffix[100];
              int ret = 0;
              snprintf(fname, sizeof(fname), "%p", (void*)re->win);
 
@@ -1584,7 +1583,7 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
                                               (const char*)dname,
                                               (const char*)fname,
                                               re->frame_cnt,
-                                              suffix);
+                                              NULL);
              if (!ret) swap_buffer_debug_mode = 0;
           }
      }
diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c 
b/src/modules/evas/engines/wayland_egl/evas_engine.c
index 2de0276..d629d78 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -1231,7 +1231,6 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
         if (swap_buffer_debug)
           {
              char fname[100];
-             char suffix[100];
              int ret = 0;
              sprintf(fname, "%p", (void*)re->win);
 
@@ -1239,7 +1238,7 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
                                               (const char*)dname,
                                               (const char*)fname,
                                               re->frame_cnt,
-                                              suffix);
+                                              NULL);
              if (!ret) swap_buffer_debug_mode = 0;
           }
      }

-- 


Reply via email to