List Info

Thread: Re: Minor memory leak in 1.8.6?




Re: Minor memory leak in 1.8.6?
country flaguser name
Canada
2008-05-13 19:46:45
Ah, of course.  Yes.  I hadn't run in to alloca before. 
Strange.

I was definitely wrong, thanks for pointing that out.

On Wed, 14 May 2008 08:54:47 +0900, Nathan Weizenbaum
<nex342gmail.com> wrote:
> I think the point of ALLOCA_N is that the memory is
allocated from the
> stack, and thus doesn't have to be explicitly freed.
> 
> Christopher Thompson wrote:
>> Is it not the case that rb_Str_to_inum(str, base,
badcheck) in
>> bignum.c leaks the memory allocated with ALLOCA_N?
>>
>> I think it should always be the case that the
string has a sentinel
>> and so if we end up running that section, there's
already a bug, in
>> which case this may not be worth worrying about.
>>
>>
>> VALUE
>> rb_str_to_inum(str, base, badcheck)
>>     VALUE str;
>>     int base;
>>     int badcheck;
>> {
>>     char *s;
>>     long len;
>>
>>     StringValue(str);
>>     if (badcheck) {
>>     s = StringValueCStr(str);
>>     }
>>     else {
>>     s = RSTRING(str)->ptr;
>>     }
>>     if (s) {
>>     len = RSTRING(str)->len;
>>     if (s[len]) {        /* no sentinel somehow */
>>         char *p = ALLOCA_N(char, len+1);  /* THIS
BIT HERE */
>>
>>         MEMCPY(p, s, char, len);
>>         p[len] = '';
>>         s = p;
>>     }
>>     }
>>     return rb_cstr_to_inum(s, base, badcheck);
>> }
>>
>>



[1]

about | contact  Other archives ( Real Estate discussion Medical topics )