$OpenBSD: patch-winlist_c,v 1.1 2003/06/05 23:01:51 naddy Exp $ --- winlist.c.orig Sun Jun 1 14:01:55 2003 +++ winlist.c Sun Jun 1 15:14:48 2003 @@ -167,7 +167,7 @@ static bool winlist_menudata_init(WMenuD WFrame *frame; int ws; WClientWin *cwin; - int nents, l, i=0; + int nents, length, entryname_length, i=0; const char *winname; char *entryname; @@ -201,9 +201,9 @@ static bool winlist_menudata_init(WMenuD continue; winname=clientwin_full_label(cwin); - l=32+strlen(winname); + length=32+strlen(winname); - entryname=ALLOC_N(char, l); + entryname=ALLOC_N(char, length); if(entryname==NULL){ warn_err(); @@ -214,15 +214,20 @@ static bool winlist_menudata_init(WMenuD if(ws>=0){ - sprintf(entryname+0, "%d%c", ws+1, - (cwin==frame->current_cwin ? '+' : '-')); + entryname_length = + snprintf(entryname+0, length, "%d%c", ws+1, + (cwin==frame->current_cwin ? '+' : '-')); }else{ - sprintf(entryname+0, "%c%c", - (ws==WORKSPACE_STICKY ? '*' : '?'), - (cwin==frame->current_cwin ? '+' : '-')); + entryname_length = + snprintf(entryname+0, length, "%c%c", + (ws==WORKSPACE_STICKY ? '*' : '?'), + (cwin==frame->current_cwin ? '+' : '-')); } - - sprintf(entryname+strlen(entryname), " %s", winname); + + + snprintf(entryname + entryname_length, + length - entryname_length, + " %s", winname); ents[i].name=entryname; ents[i].flags=0; @@ -382,7 +387,7 @@ static bool wslist_menudata_init(WMenuDa } - sprintf(entryname, "ws %d", i+1); + snprintf(entryname, l, "ws %d", i+1); ents[i].name=entryname; ents[i].flags=0;