Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Oct 2020 21:39:14 +0000
From:      Alexey Dokuchaev <danfe@freebsd.org>
To:        Kyle Evans <kevans@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r366466 - head/usr.sbin/crunch/crunchgen
Message-ID:  <20201005213914.GA28182@FreeBSD.org>
In-Reply-To: <202010052057.095Kvi7e098469@repo.freebsd.org>
References:  <202010052057.095Kvi7e098469@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 05, 2020 at 08:57:44PM +0000, Kyle Evans wrote:
> New Revision: 366466
> URL: https://svnweb.freebsd.org/changeset/base/366466
> 
> Log:
>   crunchgen: fix MK_AUTO_OBJ logic after r364166
>   
>   r364166 converted echo -n `/bin/pwd` to a raw pwd invocation, leaving a
>   trailing newline at the end of path.  This caused a later stat() of it to
>   erroneously fail and the fallback to MK_AUTO_OBJ=no logic proceeded as
>   unexpected.

[...]
@@ -648,8 +653,7 @@
 
        /* Determine the actual srcdir (maybe symlinked). */
        if (p->srcdir) {
-               snprintf(line, MAXLINELEN, "cd %s && echo -n `/bin/pwd`",
-                   p->srcdir);
+               snprintf(line, MAXLINELEN, "cd %s && pwd", p->srcdir);
                f = popen(line,"r");

Calling popen("cd somedir && pwd") in a C program to resolve symlinks,
seriously?  Why not simply call realpath(3) instead? :-/

./danfe



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20201005213914.GA28182>