svn commit: r364166 - head/usr.sbin/crunch/crunchgen
Jessica Clarke
jrtc27 at freebsd.org
Thu Aug 13 15:37:50 UTC 2020
On 13 Aug 2020, at 16:33, Ian Lepore <ian at freebsd.org> wrote:
> 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.
Indeed, my suggestion was solving the wrong problem. r364174 added the
-P but also needlessly added env too; -P is part of POSIX so any
conforming pwd will support it, builtin or not.
Jess
More information about the svn-src-all
mailing list