[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mkdir -p and network drives
From: |
Eric Blake |
Subject: |
Re: mkdir -p and network drives |
Date: |
Thu, 05 May 2005 20:40:53 -0600 |
User-agent: |
Mozilla Thunderbird 1.0.2 (Windows/20050317) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Paul Eggert on 5/5/2005 2:09 AM:
> @@ -207,8 +207,14 @@ make_path (const char *argpath,
> /* If we've saved the cwd and DIRPATH is an absolute pathname,
> we must chdir to `/' in order to enable the chdir optimization.
> So if chdir ("/") fails, turn off the optimization. */
> - if (do_chdir && *dirpath == '/' && chdir ("/") < 0)
> - do_chdir = false;
> + if (do_chdir && dirpath[0] == '/')
> + {
> + /* POSIX says "//" might be special, so chdir to "//" if the
> + file name starts with exactly two slashes. */
> + char const *root = "//" + (dirpath[1] != '/' || dirpath[2] == '/');
Oops - buffer overflow bug. dirpath[2] is past the end of the string on
dirpath of "/", since you are only testing for dirpath[1] != '/'. Try
this instead:
char const *root = "//" + (dirpath[1] != '/'
|| (*dirpath[1] && dirpath[2] == '/'));
True, dirpath was created via alloca, which on most architectures
allocates on word boundaries, so dirpath[2] is probably safe to reference,
but that is beside the point. For that matter, since path names can be
arbitrary length (on some platforms), allocating dirpath with alloca is
asking for problems with the potential of stack overflow.
- --
Life is short - so eat dessert first!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCetkz84KuGfSFAYARAveaAJ4nczwBy9G9D4qct3z4dhSo+C5YIACg0aMI
P2Dbg6xbPaoYLPR51j53DnA=
=TGwj
-----END PGP SIGNATURE-----
- Re: mkdir -p and network drives, (continued)
- Re: mkdir -p and network drives, Pierre A. Humblet, 2005/05/05
- Re: mkdir -p and network drives, Igor Pechtchanski, 2005/05/05
- RE: mkdir -p and network drives, Dave Korn, 2005/05/05
- RE: mkdir -p and network drives, Igor Pechtchanski, 2005/05/06
- Re: mkdir -p and network drives, Paul Eggert, 2005/05/06
- Re: mkdir -p and network drives, Christopher Faylor, 2005/05/06
- Re: mkdir -p and network drives, Paul Eggert, 2005/05/07
- Message not available
- Re: mkdir -p and network drives, Eric Blake, 2005/05/07
- Re: mkdir -p and network drives, Jim Meyering, 2005/05/06
- cvs mirror stuck and lists.gnu.org offline (was: mkdir -p and network drives), Bob Proulx, 2005/05/05
Re: mkdir -p and network drives,
Eric Blake <=