diff options
author | dinoex <dinoex@FreeBSD.org> | 2008-12-05 04:57:48 +0800 |
---|---|---|
committer | dinoex <dinoex@FreeBSD.org> | 2008-12-05 04:57:48 +0800 |
commit | 59a6c47445cd2eb0045398f8297c28026ae796be (patch) | |
tree | bc17c19f23769505803697cab15c3471d6b04293 /x11-clocks/asclock/files | |
parent | 045c3c8b60822aeea1d1f044f47a238797e281a1 (diff) | |
download | freebsd-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-color | 76 |
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 */ |