Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

user/3146: banner(1) handles empty strings ("") badly

From: <alexander(at)beard.se>
Date: Wed Mar 12 2003 - 16:47:35 EST


>Number: 3146
>Category: user
>Synopsis: banner(1) handles empty strings ("") badly
>Confidential: no
net
>Environment:
        

	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:
Received on Wed Mar 12 17:24:38 2003

This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 13:29:52 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library