1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-24 04:33:24 +00:00

- fix buffer overrun at startup

PR:		129326
Submitted by:	G. Paul Ziemba
This commit is contained in:
Dirk Meyer 2008-12-04 20:57:48 +00:00
parent 8613346a13
commit 70dc515711
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=223782
2 changed files with 77 additions and 1 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= asclock
PORTVERSION= 1.0
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= x11-clocks afterstep
MASTER_SITES= ${MASTER_SITE_XCONTRIB}
MASTER_SITE_SUBDIR= applications

View File

@ -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 */