diff --git a/ChangeLog b/ChangeLog index b343b57769..ce51937e29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jul 19 22:47:29 2005 Yukihiro Matsumoto + + * error.c (syserr_initialize): need to allocate an additional byte + for NUL at the end. [ruby-dev:26574] + Tue Jul 19 17:16:34 2005 Yukihiro Matsumoto * signal.c (trap): remove sigexit(); handle "EXIT" via sig_exec(). diff --git a/error.c b/error.c index dc3ed1b358..347bacd5e0 100644 --- a/error.c +++ b/error.c @@ -956,7 +956,7 @@ syserr_initialize(argc, argv, self) else err = "unknown error"; if (!NIL_P(mesg)) { VALUE str = mesg; - size_t len = strlen(err)+RSTRING(str)->len+3; + size_t len = strlen(err)+RSTRING(str)->len+4; StringValue(str); mesg = rb_str_new(0, len); snprintf(RSTRING(mesg)->ptr, len, "%s - %.*s", err, diff --git a/eval.c b/eval.c index eb5ea2758c..1824790956 100644 --- a/eval.c +++ b/eval.c @@ -8667,7 +8667,7 @@ proc_to_s(self) NODE *node; char *cname = rb_obj_classname(self); const int w = (SIZEOF_LONG * CHAR_BIT) / 4; - long len = strlen(cname)+6+w; /* 6:tags 16:addr */ + long len = strlen(cname)+6+w+1; /* 6:tags 16:addr NUL */ VALUE str; Data_Get_Struct(self, struct BLOCK, data);