From 8260ef756da8586a420e17d70366fb05cd7407c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szab=C3=B3?= Date: Sat, 27 Aug 2022 23:12:44 +0200 Subject: [PATCH 1/2] croak on undef in harness subroutine --- lib/IPC/Run.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/IPC/Run.pm b/lib/IPC/Run.pm index adb209b..f0c919a 100644 --- a/lib/IPC/Run.pm +++ b/lib/IPC/Run.pm @@ -1803,6 +1803,8 @@ sub harness { croak "Process control symbol ('|', '&') missing" if $cur_kid; croak "Can't spawn a subroutine on Win32" if Win32_MODE && ref eq "CODE"; + croak "Can't run undefined command. Did you pass a reference to an undefined array?" + if !defined($_->[0]) && ref eq 'ARRAY'; $cur_kid = { TYPE => 'cmd', VAL => $_, From 1ff9709a8610eb6aa294cb51f8f9626b980e9745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Szab=C3=B3?= Date: Sat, 27 Aug 2022 23:35:27 +0200 Subject: [PATCH 2/2] croak on undef or empty string in _search_path subroutine --- lib/IPC/Run.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/IPC/Run.pm b/lib/IPC/Run.pm index f0c919a..ea122ec 100644 --- a/lib/IPC/Run.pm +++ b/lib/IPC/Run.pm @@ -1161,6 +1161,9 @@ my %cmd_cache; sub _search_path { my ($cmd_name) = @_; + + croak "can't find empty command" unless length $cmd_name; + if ( File::Spec->file_name_is_absolute($cmd_name) && -x $cmd_name ) { _debug "'", $cmd_name, "' is absolute" if _debugging_details;