Commit da4bd3b
committed
Fix memory leak when RUBYOPT is invalid
When RUBYOPT is invalid, it raises an error which causes moreswitches
to leak memory. It can be seen when building with LSAN enabled:
$ RUBY_FREE_AT_EXIT=1 RUBYOPT=f ruby
ruby: invalid option -f (-h will show valid options) (RuntimeError)
Direct leak of 16 byte(s) in 1 object(s) allocated from:
#0 0x618cef8efa23 in malloc (miniruby+0x64a23)
#1 0x618cefa0e8d8 in rb_gc_impl_malloc gc/default/default.c:8182:5
#2 0x618cef9f7f01 in ruby_xmalloc2_body gc.c:5182:12
#3 0x618cef9f7eac in ruby_xmalloc2 gc.c:5176:34
Shopify#4 0x618cefb547b2 in moreswitches ruby.c:919:18
Shopify#5 0x618cefb526fe in process_options ruby.c:2350:9
Shopify#6 0x618cefb524ac in ruby_process_options ruby.c:3202:12
Shopify#7 0x618cef9dc11f in ruby_options eval.c:119:16
Shopify#8 0x618cef8f2fb5 in rb_main main.c:42:26
Shopify#9 0x618cef8f2f59 in main main.c:62:121 parent dfcb79c commit da4bd3b
1 file changed
+5
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
916 | 916 | | |
917 | 917 | | |
918 | 918 | | |
919 | | - | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
920 | 922 | | |
921 | 923 | | |
922 | 924 | | |
| |||
948 | 950 | | |
949 | 951 | | |
950 | 952 | | |
951 | | - | |
| 953 | + | |
| 954 | + | |
952 | 955 | | |
953 | 956 | | |
954 | 957 | | |
| |||
0 commit comments