aboutsummaryrefslogtreecommitdiffstats
path: root/x11-clocks/asclock/files
diff options
context:
space:
mode:
authordinoex <dinoex@FreeBSD.org>2008-12-05 04:57:48 +0800
committerdinoex <dinoex@FreeBSD.org>2008-12-05 04:57:48 +0800
commit59a6c47445cd2eb0045398f8297c28026ae796be (patch)
treebc17c19f23769505803697cab15c3471d6b04293 /x11-clocks/asclock/files
parent045c3c8b60822aeea1d1f044f47a238797e281a1 (diff)
downloadfreebsd-ports-gnome-59a6c47445cd2eb0045398f8297c28026ae796be.tar.gz
freebsd-ports-gnome-59a6c47445cd2eb0045398f8297c28026ae796be.tar.zst
freebsd-ports-gnome-59a6c47445cd2eb0045398f8297c28026ae796be.zip
- fix buffer overrun at startup
PR: 129326 Submitted by: G. Paul Ziemba
Diffstat (limited to 'x11-clocks/asclock/files')
-rw-r--r--x11-clocks/asclock/files/patch-color76
1 files changed, 76 insertions, 0 deletions
diff --git a/x11-clocks/asclock/files/patch-color b/x11-clocks/asclock/files/patch-color
new file mode 100644
index 000000000000..cd2ccfc1eb29
--- /dev/null
+++ b/x11-clocks/asclock/files/patch-color
@@ -0,0 +1,76 @@
+--- asclock.c
++++ work/asclock/asclock.c 2008-11-30 23:32:41.000000000 -0800
+@@ -302,8 +302,8 @@
+ static char **clock_xpm;
+ XColor col;
+ XWindowAttributes attributes;
+- char led1[22];
+- char led2[22];
++ char led1[64];
++ char led2[64];
+ int ret;
+
+ clock_xpm =ONLYSHAPE ? mask_xpm : clk_xpm;
+@@ -317,51 +317,49 @@
+ nocolor("parse",LedColor);
+ }
+
+- sprintf(&led1[0], ". c #%4X%4X%4X", col.red, col.green, col.blue);
+- for(ret=10;ret<22;ret++)
+- if(led1[ret]==' ') led1[ret]='0';
+- led_xpm[2] = &led1[0];
++ sprintf(led1, ". c #%04X%04X%04X", col.red, col.green, col.blue);
++ led_xpm[2] = led1;
+
+ col.red = (col.red /10) *3;
+ col.green = (col.green/10) *3;
+ col.blue = (col.blue /10) *3;
+- sprintf(&led2[0], "X c #%4X%4X%4X", col.red, col.green, col.blue);
+- for(ret=10;ret<22;ret++)
+- if(led2[ret]==' ') led2[ret]='0';
+- led_xpm[3] = &led2[0];
++ sprintf(led2, "X c #%04X%04X%04X", col.red, col.green, col.blue);
++ led_xpm[3] = led2;
+
+ asclock.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, clock_xpm, &asclock.pixmap,
+ &asclock.mask, &asclock.attributes);
+ if(ret != XpmSuccess)
+- {fprintf(stderr, ERR_colorcells);exit(1);}
++ {fprintf(stderr, "1: %s\n", XpmGetErrorString(ret));exit(1);}
+ visible.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, clk_xpm, &visible.pixmap,
+ &visible.mask, &visible.attributes);
++ if(ret != XpmSuccess)
++ {fprintf(stderr, "2: %s\n", XpmGetErrorString(ret));exit(1);}
+
+ led.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, led_xpm, &led.pixmap,
+ &led.mask, &led.attributes);
+ if(ret != XpmSuccess)
+- {fprintf(stderr, ERR_colorcells);exit(1);}
++ {fprintf(stderr, "3: %s\n", XpmGetErrorString(ret));exit(1);}
+
+ month.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, month_xpm, &month.pixmap,
+ &month.mask, &month.attributes);
+ if(ret != XpmSuccess)
+- {fprintf(stderr, ERR_colorcells);exit(1);}
++ {fprintf(stderr, "4: %s\n", XpmGetErrorString(ret));exit(1);}
+
+ date.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, date_xpm, &date.pixmap,
+ &date.mask, &date.attributes);
+ if(ret != XpmSuccess)
+- {fprintf(stderr, ERR_colorcells);exit(1);}
++ {fprintf(stderr, "5: %s\n", XpmGetErrorString(ret));exit(1);}
+
+ weekday.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
+ ret = XpmCreatePixmapFromData(dpy, Root, weekday_xpm, &weekday.pixmap,
+ &weekday.mask, &weekday.attributes);
+ if(ret != XpmSuccess)
+- {fprintf(stderr, ERR_colorcells);exit(1);}
++ {fprintf(stderr, "6: %s\n", XpmGetErrorString(ret));exit(1);}
+ }
+ /****************************************************************************/
+ /* Removes expose events for a specific window from the queue */