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] = '\0';
	    s = p;
	}
     }
     return rb_cstr_to_inum(s, base, badcheck);
}