Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -g -O2 -flto=auto -ffat-lto-objects -flto=auto
-ffat-lto-objects -fstack-protector-strong -Wformat
-Werror=format-security -Wall
uname output: Linux xi 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22
14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu

Bash Version: 5.1
Patch Level: 16
Release Status: release

Description:
When PATH is empty, the command_not_found_handle function is not
called when a command is not found.

Repeat-By:
> bash -c 'command_not_found_handle() { echo ok; }; no-such-command'
ok

> bash -c 'PATH=; command_not_found_handle() { echo ok; }; no-such-command'
bash: line 1: no-such-command: No such file or directory

I verified this behavior on master as well.

Fix:
--- a/findcmd.c
+++ b/findcmd.c
@@ -632,3 +632,3 @@ find_user_command_in_path (name, path_list, flags, rflagsp)
   if (path_list == 0 || *path_list == '\0')
-    return (savestring (name));        /* XXX */
+    return ((char *)NULL);

This is very old code and I have no idea what the original intention
was in returning 'name' here or if doing so is still performing useful
work, but the tests pass at least.

Thank you for your attention!

Best, Moshe

Reply via email to