|
|||||||||||
|
user/3146: banner(1) handles empty strings ("") badly
From: <alexander(at)beard.se>
Date: Wed Mar 12 2003 - 16:47:35 EST
System : OpenBSD 3.2 Architecture: OpenBSD.i386 Machine : i386 >Description: /usr/bin/banner assumes that there is always at least one character in each string This produces strange and unwanted result when empty lines are used >How-To-Repeat: $ /usr/bin/banner "donald" "" "duck" $ /usr/bin/banner "" $ etc... >Fix: Patch follows: Index: banner.c RCS file: /cvs/src/usr.bin/banner/banner.c,v retrieving revision 1.5 diff -u -r1.5 banner.c --- banner.c 2001/11/19 19:02:13 1.5 +++ banner.c 2003/03/12 21:23:20 @@ -139,7 +139,7 @@
for (scnhgt = 0; scnhgt++ < HEIGHT+DROP; ) {
strp = &outbuf[0];
sp = scsp;
- for (nchrs = 0; ; ) {
+ for (nchrs = 0; *sp != dlm && *sp != '\0'; ) {
c = TRC(cc = *sp++);
d = dropit(c);
if ((!d && scnhgt > HEIGHT) || (scnhgt <= DROP && d))
@@ -147,7 +147,7 @@
*strp++ = BACKGND;
else
strp = scnline(scnkey[(int)c][scnhgt-1-d], strp, cc);
- if (*sp == dlm || *sp == '\0' || nchrs++ >= PW/(WIDTH+1)-1)
+ if (nchrs++ >= PW/(WIDTH+1)-1)
break;
*strp++ = BACKGND;
#ifdef LPD_CHSET /* >Release-Note:
This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 13:29:52 EDT |
||||||||||
|
|||||||||||