Issue #7423 has been updated by RolandH (Roland Hautz).


This bug fix is neither on the (complete) Roadmap nor reported under the "Bugs unassociated with any target version". I'm afraid it should be reopened in order to get on the radar for a release.
----------------------------------------
Bug #7423: ruby_process_options() dereferences argv even if argc is zero
https://bugs.ruby-lang.org/issues/7423#change-39251

Author: gfim (Graham Menhennitt)
Status: Closed
Priority: Low
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]
Backport: 


In ruby_process_options(), there is a line:

    ruby_script(argv[0]);  /* for the time being */

This dereferences argv whether argc is zero or not. This causes a SEGV if there are no command line args. It should be changed to something like:

    ruby_script(argc == 0 ? "ruby" : argv[0]);

In practice, this is unlikely to happen since shells never pass argc as zero. However, it can happen in two situations:
- a program calls something like 'static char argv[] = {0}; execv("/usr/bin/ruby", argv);'
- somebody embedding a ruby interpreter explicitly calls ruby_process_options(0, 0);

Argv is used in a number of other places too. These should all be tested for zero arguments.



-- 
http://bugs.ruby-lang.org/