https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5e6ce1cfb212a6dd71790933186275081cffe3c3
commit 5e6ce1cfb212a6dd71790933186275081cffe3c3 Author: Corinna Vinschen <[email protected]> Date: Sun Feb 17 22:59:36 2019 +0100 Cygwin: utils: kill: revert erroneously removed optind correction When recognizing a negative pid, optind is off by one. The code correcting this has been erroneously removed by commit 8de660271fe75a6993f1c9888d24b824bb7f999d. Revert that. Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/cygwin/release/3.0.1 | 3 +++ winsup/utils/kill.cc | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/release/3.0.1 b/winsup/cygwin/release/3.0.1 index ae6e03e..fd6595b 100644 --- a/winsup/cygwin/release/3.0.1 +++ b/winsup/cygwin/release/3.0.1 @@ -11,3 +11,6 @@ Bug Fixes - Relax fork child permissions to avoid a potential fork failure. Addresses: https://cygwin.com/ml/cygwin/2019-02/msg00234.html + +- Fix Command-line argument handling of kill(1) in terms of negative PID. + Addresses: report on IRC diff --git a/winsup/utils/kill.cc b/winsup/utils/kill.cc index 768ac44..a22d702 100644 --- a/winsup/utils/kill.cc +++ b/winsup/utils/kill.cc @@ -251,7 +251,10 @@ main (int argc, char **argv) break; case '?': if (gotasig) /* this is a negative pid, go ahead */ - goto out; + { + --optind; + goto out; + } optreset = 1; optind = 1 + av - argv; gotasig = *av + 1;
