Issue #7423 has been reported by gfim (Graham Menhennitt).

----------------------------------------
Bug #7423: ruby_process_options() dereferences argv even if argc is zero
https://bugs.ruby-lang.org/issues/7423

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


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/