From unknown Thu Aug 14 22:21:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#30564: call-process always fails for empty exec-path Resent-From: Christopher Wellons Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Feb 2018 02:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 30564 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 30564@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.151917887219421 (code B ref -1); Wed, 21 Feb 2018 02:08:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Feb 2018 02:07:52 +0000 Received: from localhost ([127.0.0.1]:53467 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoJp1-00053B-OM for submit@debbugs.gnu.org; Tue, 20 Feb 2018 21:07:51 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41663) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eoJp0-00052w-Dw for submit@debbugs.gnu.org; Tue, 20 Feb 2018 21:07:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoJou-0005rp-7x for submit@debbugs.gnu.org; Tue, 20 Feb 2018 21:07:45 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:48659) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eoJou-0005rj-45 for submit@debbugs.gnu.org; Tue, 20 Feb 2018 21:07:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eoJot-000371-74 for bug-gnu-emacs@gnu.org; Tue, 20 Feb 2018 21:07:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eoJoq-0005pl-2O for bug-gnu-emacs@gnu.org; Tue, 20 Feb 2018 21:07:43 -0500 Received: from mail.nullprogram.com ([192.241.191.137]:49900) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eoJop-0005o7-Uu for bug-gnu-emacs@gnu.org; Tue, 20 Feb 2018 21:07:40 -0500 Received: from nullprogram.com (localhost [127.0.0.1]) by mail.nullprogram.com (Postfix) with ESMTPS id 9ACF7C1DDD for ; Tue, 20 Feb 2018 21:07:37 -0500 (EST) Date: Tue, 20 Feb 2018 21:07:36 -0500 From: Christopher Wellons Message-ID: <20180221020736.GE12719@nullprogram.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) The call-process function incorrectly fails for valid absolute paths when exec-path is nil: (let ((exec-path ())) (call-process "/bin/ls")) ;; error: (file-error "Searching for program" ;; "No such file or directory" "/bin/ls") Adding a single element to exec-path fixes the problem, even if that element is nonsense: (let ((exec-path '(t))) (call-process "/bin/ls")) ;; => 0 The bug is in the for loop in openp() (lread.c). The only successful returns are found inside the loop. An empty list results in no loop iterations, which means an absolute path has no chance to return successfully. This bug dates back at least as far as Emacs 24.3. From unknown Thu Aug 14 22:21:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#30564: call-process always fails for empty exec-path Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 14 Apr 2018 19:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30564 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Christopher Wellons Cc: 30564@debbugs.gnu.org Received: via spool by 30564-submit@debbugs.gnu.org id=B30564.152373580927110 (code B ref 30564); Sat, 14 Apr 2018 19:57:01 +0000 Received: (at 30564) by debbugs.gnu.org; 14 Apr 2018 19:56:49 +0000 Received: from localhost ([127.0.0.1]:52752 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7RI1-00073B-Ls for submit@debbugs.gnu.org; Sat, 14 Apr 2018 15:56:49 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:56664) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7RHz-00072x-TD for 30564@debbugs.gnu.org; Sat, 14 Apr 2018 15:56:48 -0400 Received: from 46.67.12.60.tmi.telenormobil.no ([46.67.12.60] helo=corrigan) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1f7RHw-0006MA-JP; Sat, 14 Apr 2018 21:56:46 +0200 Received: from larsi by corrigan with local (Exim 4.89) (envelope-from ) id 1f7RHq-0008B4-Hm; Sat, 14 Apr 2018 21:56:38 +0200 From: Lars Ingebrigtsen References: <20180221020736.GE12719@nullprogram.com> Date: Sat, 14 Apr 2018 21:56:38 +0200 In-Reply-To: <20180221020736.GE12719@nullprogram.com> (Christopher Wellons's message of "Tue, 20 Feb 2018 21:07:36 -0500") Message-ID: <87r2nh1s09.fsf@mouse.gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Christopher Wellons writes: > The call-process function incorrectly fails for valid absolute paths > when exec-path is nil: > > (let ((exec-path ())) > (call-process "/bin/ls")) > ;; error: (file-error "Searching for program" > ;; "No such file or directory" "/bin/ls") > > Adding a single element to exec-path fixes the problem, even if that > element is nonsense: > > (let ((exec-path '(t))) > (call-process "/bin/ls")) > ;; => 0 > > The bug is in the for loop in openp() (lread.c). The only successful > returns are found inside the loop. An empty list results in no loop > iterations, which means an absolute path has no chance to return > successfully. I've now fixed this by transforming the for loop into a do/while loop. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 14 15:56:50 2018 Received: (at control) by debbugs.gnu.org; 14 Apr 2018 19:56:50 +0000 Received: from localhost ([127.0.0.1]:52754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7RI1-00073I-Tq for submit@debbugs.gnu.org; Sat, 14 Apr 2018 15:56:50 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:56666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f7RI0-00072z-Kk for control@debbugs.gnu.org; Sat, 14 Apr 2018 15:56:48 -0400 Received: from 46.67.12.60.tmi.telenormobil.no ([46.67.12.60] helo=corrigan) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1f7RHy-0006Qz-91 for control@debbugs.gnu.org; Sat, 14 Apr 2018 21:56:48 +0200 Received: from larsi by corrigan with local (Exim 4.89) (envelope-from ) id 1f7RHs-0008B7-O5 for control@debbugs.gnu.org; Sat, 14 Apr 2018 21:56:40 +0200 To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #30564 Message-Id: Date: Sat, 14 Apr 2018 21:56:40 +0200 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 30564 fixed close 30564