1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-20 20:09:11 +00:00

. Fix a buffer overrun on start up.

This commit is contained in:
Greg Lewis 2009-04-01 16:14:41 +00:00
parent ecb8bf295e
commit 24f79bc5ad
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=231440
2 changed files with 79 additions and 1 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= astzclock
PORTVERSION= 1.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11-clocks afterstep
MASTER_SITES= http://www.eyesbeyond.com/freebsddom/astzclock/

View File

@ -0,0 +1,78 @@
$FreeBSD$
--- astzclock.c
+++ astzclock.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 */