GNU bug report logs - #30564
call-process always fails for empty exec-path

Previous Next

Package: emacs;

Reported by: Christopher Wellons <wellons <at> nullprogram.com>

Date: Wed, 21 Feb 2018 02:08:02 UTC

Severity: minor

Tags: fixed

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christopher Wellons <wellons <at> nullprogram.com>
To: bug-gnu-emacs <at> gnu.org
Subject: call-process always fails for empty exec-path
Date: Tue, 20 Feb 2018 21:07:36 -0500
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.




This bug report was last modified 7 years and 40 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.