diff options
Diffstat (limited to 'src/gdk')
| -rw-r--r-- | src/gdk/cdgdkclp.c | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gdk/cdgdkclp.c b/src/gdk/cdgdkclp.c index 16eb1c7..c6557b9 100644 --- a/src/gdk/cdgdkclp.c +++ b/src/gdk/cdgdkclp.c @@ -50,7 +50,7 @@ static void cdkillcanvas(cdCtxCanvas *ctxcanvas)  static int cdplay(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax, void *data)  { -  char filename[1024];  +  char filename[10240];     int dwSize;    FILE* file;    GdkAtom* buffer; @@ -59,7 +59,9 @@ static int cdplay(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax, void    if(!buffer)      return CD_ERROR; -  tmpnam(filename); +  if (!cdStrTmpFileName(filename)) +    return CD_ERROR; +    file = fopen(filename, "w");    fwrite(buffer, dwSize, 1, file);    fclose(file); @@ -75,7 +77,7 @@ static int cdplay(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax, void  static void cdcreatecanvas(cdCanvas* canvas, void *data)  { -  char tmpPath[512]; +  char tmpPath[10240];    char* str = (char*)data;    GtkClipboard* clp = NULL; @@ -93,7 +95,8 @@ static void cdcreatecanvas(cdCanvas* canvas, void *data)      return;    str++; -  tmpnam(tmpPath); +  if (!cdStrTmpFileName(tmpPath)) +    return;    strcat(tmpPath, " ");    strcat(tmpPath, str);  | 
