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

Ian Lepore ian at freebsd.org
Thu Aug 13 15:33:59 UTC 2020


On Wed, 2020-08-12 at 09:24 -0700, Rodney W. Grimes wrote:
> > 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.
> 

Or just use "pwd -P" and avoid invoking multiple programs when the
shell can do all the work.

-- Ian



More information about the svn-src-all mailing list