summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--error.c4
-rw-r--r--eval.c4
-rw-r--r--object.c6
-rw-r--r--struct.c4
5 files changed, 11 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 24ee768ee2..cc5e950193 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
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]
+ * error.c (syserr_initialize): add 1 byte for snprintf() size for
+ NUL at the end. [ruby-dev:26574]
Tue Jul 19 16:39:46 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
diff --git a/error.c b/error.c
index 7dacac8ce5..0b98584c54 100644
--- a/error.c
+++ b/error.c
@@ -907,10 +907,10 @@ syserr_initialize(argc, argv, self)
else err = "unknown error";
if (!NIL_P(mesg)) {
VALUE str = mesg;
- size_t len = strlen(err)+RSTRING(str)->len+4;
+ size_t len = strlen(err)+RSTRING(str)->len+3;
StringValue(str);
mesg = rb_str_new(0, len);
- snprintf(RSTRING(mesg)->ptr, len, "%s - %.*s", err,
+ snprintf(RSTRING(mesg)->ptr, len+1, "%s - %.*s", err,
(int)RSTRING(str)->len, RSTRING(str)->ptr);
rb_str_resize(mesg, strlen(RSTRING(mesg)->ptr));
}
diff --git a/eval.c b/eval.c
index cfd90f8e95..f802f07842 100644
--- a/eval.c
+++ b/eval.c
@@ -8510,13 +8510,13 @@ proc_to_s(self)
if ((node = data->frame.node) || (node = data->body)) {
len += strlen(node->nd_file) + 2 + (SIZEOF_LONG*CHAR_BIT-NODE_LSHIFT)/3;
str = rb_str_new(0, len);
- snprintf(RSTRING(str)->ptr, len,
+ snprintf(RSTRING(str)->ptr, len+1,
"#<%s:0x%.*lx@%s:%d>", cname, w, (VALUE)data->body,
node->nd_file, nd_line(node));
}
else {
str = rb_str_new(0, len);
- snprintf(RSTRING(str)->ptr, len,
+ snprintf(RSTRING(str)->ptr, len+1,
"#<%s:0x%.*lx>", cname, w, (VALUE)data->body);
}
RSTRING(str)->len = strlen(RSTRING(str)->ptr);
diff --git a/object.c b/object.c
index 27af5b33e3..b87a1d3a90 100644
--- a/object.c
+++ b/object.c
@@ -357,9 +357,9 @@ rb_any_to_s(obj)
size_t len;
VALUE str;
- len = strlen(cname)+6+16+1;
- str = rb_str_new(0, len); /* 6:tags 16:addr 1:nul */
- snprintf(RSTRING(str)->ptr, len, "#<%s:0x%lx>", cname, obj);
+ len = strlen(cname)+6+16;
+ str = rb_str_new(0, len); /* 6:tags 16:addr */
+ snprintf(RSTRING(str)->ptr, len+1, "#<%s:0x%lx>", cname, obj);
RSTRING(str)->len = strlen(RSTRING(str)->ptr);
if (OBJ_TAINTED(obj)) OBJ_TAINT(str);
diff --git a/struct.c b/struct.c
index ed3f9f28ee..15546b981d 100644
--- a/struct.c
+++ b/struct.c
@@ -518,10 +518,10 @@ rb_struct_inspect(s)
{
if (rb_inspecting_p(s)) {
char *cname = rb_class2name(rb_obj_class(s));
- size_t len = strlen(cname) + 15;
+ size_t len = strlen(cname) + 14;
VALUE str = rb_str_new(0, len);
- snprintf(RSTRING(str)->ptr, len, "#<struct %s:...>", cname);
+ snprintf(RSTRING(str)->ptr, len+1, "#<struct %s:...>", cname);
RSTRING(str)->len = strlen(RSTRING(str)->ptr);
return str;
}