Hi, is there a small leak in dir.c? Index: dir.c =================================================================== RCS file: /src/ruby/dir.c,v retrieving revision 1.82 diff -u -p -r1.82 dir.c --- dir.c 16 Jan 2003 07:34:01 -0000 1.82 +++ dir.c 28 Jan 2003 18:24:39 -0000 @@ -778,6 +778,7 @@ glob_helper(path, sub, flags, func, arg) sprintf(buf, "%s%s%s", base, (BASE) ? "/" : "", dp->d_name); if (lstat(buf, &st) < 0) { if (errno != ENOENT) rb_sys_warning(buf); + free(buf); continue; } if (S_ISDIR(st.st_mode)) { This I've found on disk: Is there any reason to allocate ary with 2000? Index: enum.c =================================================================== RCS file: /src/ruby/enum.c,v retrieving revision 1.29 diff -u -p -r1.29 enum.c --- enum.c 2002/08/01 09:42:36 1.29 +++ enum.c 2002/10/01 10:35:22 @@ -274,7 +274,12 @@ enum_sort_by(obj) VALUE ary; long i; - ary = rb_ary_new2((TYPE(obj) == T_ARRAY) ? RARRAY(obj)->len : 2000); + if (TYPE(obj) == T_ARRAY) { + ary = rb_ary_new2(RARRAY(obj)->len); + } + else { + ary = rb_ary_new(); + } rb_iterate(rb_each, obj, sort_by_i, ary); if (RARRAY(ary)->len > 1) { qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), sort_by_cmp); Michal