diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | error.c | 2 | ||||
-rw-r--r-- | eval.c | 2 |
3 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Tue Jul 19 22:47:29 2005 Yukihiro Matsumoto <matz@ruby-lang.org> + + * 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 <matz@ruby-lang.org> * signal.c (trap): remove sigexit(); handle "EXIT" via sig_exec(). @@ -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, @@ -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); |