Project

General

Profile

Actions

Bug #19895

closed

Memory leak in Ripper#sexp_raw called with invalid syntax

Added by jemmai (Jemma Issroff) almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:114846]

Description

There is a memory leak in Ripper#sexp_raw with invalid syntax

I used the ruby_memcheck gem to find this leak.

Script to reproduce:

$ ruby_memcheck -e 'require "ripper"; Ripper.sexp_raw("break 1,;")' 

Stack trace

64 bytes in 1 blocks are definitely lost in loss record 8,335 of 11,879
  malloc (at /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  objspace_xmalloc0 (gc.c:11465)
 *vtable_alloc_gen (ripper.y:6209)
 *local_push.constprop.0 (ripper.y:12587)
 *ripper_yyparse (ripper.y:1329)
 *ripper_parse0 (ripper.y:13817)
  rb_ensure (eval.c:997)
 *ripper_parse (ripper.y:13855)
  vm_call_cfunc_with_frame (vm_insnhelper.c:3037)
  vm_sendish (vm_insnhelper.c:4751)
  vm_exec_core (insns.def:778)
  rb_vm_exec (vm.c:2220)
  rb_ec_exec_node (eval.c:280)
  ruby_run_node (eval.c:321)
  main (main.c:47)

88 (24 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 8,508 of 11,879
  malloc (at /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
  objspace_xmalloc0 (gc.c:11465)
 *vtable_alloc_gen (ripper.y:6206)
 *local_push.constprop.0 (ripper.y:12586)
 *ripper_yyparse (ripper.y:1329)
 *ripper_parse0 (ripper.y:13817)
  rb_ensure (eval.c:997)
 *ripper_parse (ripper.y:13855)
  vm_call_cfunc_with_frame (vm_insnhelper.c:3037)
  vm_sendish (vm_insnhelper.c:4751)
  vm_exec_core (insns.def:778)
  rb_vm_exec (vm.c:2220)
  rb_ec_exec_node (eval.c:280)
  ruby_run_node (eval.c:321)
  main (main.c:47)

Valgrind reported errors (e.g. memory leak or use-after-free) (RuntimeError)

Expected behavior

The Ripper#sexp_raw docs state that "By default, this method does not handle syntax errors in src, returning nil in such cases." Expected behavior, according to the documentation, would be nil returned without any memory leak

Updated by jemmai (Jemma Issroff) almost 2 years ago

  • Status changed from Open to Closed

Duplicate of [#19835]

Actions

Also available in: Atom PDF

Like0
Like0