Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jun 2000 22:01:39 -0600
From:      Wes Peters <wes@softweyr.com>
To:        dima@rdy.com
Cc:        Koga Youichirou <y-koga@jp.FreeBSD.org>, wollman@khavrinen.lcs.mit.edu, silby@silby.com, freebsd-security@FreeBSD.ORG
Subject:   Re: Fwd: WuFTPD: Providing *remote* root since at least1994
Message-ID:  <3956D5A3.1C2E8D06@softweyr.com>
References:  <200006251838.LAA01288@sivka.rdy.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Dima Ruban wrote:
> 
> Wes Peters writes:
> > Dima Ruban wrote:
> > >
> > > What's the purpose of this patch?
> > > I didn't look at the code, but to me it sounds like it's pretty much
> > > irrelevant whether you gonna use ``foo(fmt, string)'' or ``foo(string)''
> >
> > If string contains formatting codes, foo("%s", string) does the right
> > thing and just puts out the formatting codes in the string.  foo(string)
> > tries to interpret the embedded format codes and blows the stack.
> >
> 
> Well, if in addition to "fmt" argument, string will contain formatting code[s],
> the result will be just the same. (at least with printf() family).

Since when did printf try to interpret formatting codes within an argument
string?  In fact, it does not:

wes@homer$ cat foo.c
main()
{
        char *s = "This is a %s string.\n";

        printf("\nWith format string:\n");
        printf("%s", s);

        printf("\nWithout format string:\n");
        printf(s);
}
wes@homer$ ./foo

With format string:
This is a %s string.

Without format string:
This is a This is a %s string.
 string.

Notice the second output is scrambled, as printf apparently finds a 
pointer to the string on the stack and prints it within itself.  Oops.
As you can see, the first printf using the %s code worked fine.

-- 
            "Where am I, and what am I doing in this handbasket?"

Wes Peters                                                         Softweyr LLC
wes@softweyr.com                                           http://softweyr.com/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3956D5A3.1C2E8D06>