svn commit: r364166 - head/usr.sbin/crunch/crunchgen

Rodney W. Grimes freebsd at gndrsh.dnsmgr.net
Wed Aug 12 16:24:31 UTC 2020


> On 12 Aug 2020, at 17:10, Rodney W. Grimes <freebsd at gndrsh.dnsmgr.net> wrote:
> > 
> >> Author: arichardson
> >> Date: Wed Aug 12 15:49:06 2020
> >> New Revision: 364166
> >> URL: https://svnweb.freebsd.org/changeset/base/364166
> >> 
> >> Log:
> >>  Fix crunchgen usage of mkstemp()
> >> 
> >>  On Glibc systems mkstemp can only be used once with the same template
> >>  string since it will be modified in-place and no longer contain any 'X' chars.
> >>  It is fine to reuse the same file here but we need to be explicit and use
> >>  open() instead of mkstemp() on the second use.
> >> 
> >>  While touching this file also avoid a hardcoded /bin/pwd since that may not
> >>  work when building on non-FreeBSD systems.
> > 
> > This may cause some grief, as now pwd may use a shell builtin
> > and often shell builtin's return a cwd that is not a true
> > full path, ie it may contain symlink compontents in the
> > path.
> > 
> > /bin/sh:
> > 
> > # cd /tmp/b
> > # /bin/pwd
> > /tmp/a
> > # pwd
> > /tmp/b
> > # ls -lag /tmp/?
> > lrwxr-xr-x  1 root  wheel  1 Aug 12 16:06 /tmp/b -> a
> > 
> > /tmp/a:
> > total 17
> > drwxr-xr-x   2 root  wheel    2 Aug 12 16:06 .
> > drwxrwxrwt  18 root  wheel  248 Aug 12 16:06 ..
> 
> There's the question of whether that really matters; both values are in
> some sense correct. But if you want to restore the old behaviour, I
> believe `env pwd` is the portable way to do so?

You have cut the context, but the code has a comment that
states it is doing this to remove symbolic links, so this
change infact undoes something that was being done intentionally.

I do believe also that a "env pwd" would do the right thing
as well.

-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the svn-src-head mailing list