summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2014-03-08 13:54:02 +0900
committerMasaki Muranaka <[email protected]>2014-03-08 15:53:59 +0900
commit270d25bf2db157c9d1cdcc57bccefabbb1341524 (patch)
tree22319de5b6970a0378f0b8c8c7164e7ac34ffedd /src/class.c
parent058bb18f280dddb53ac40c838b371e9469024274 (diff)
downloadmruby-270d25bf2db157c9d1cdcc57bccefabbb1341524.tar.gz
mruby-270d25bf2db157c9d1cdcc57bccefabbb1341524.zip
Make type casts safer.
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c
index 9880a82fa..6f5a8ed19 100644
--- a/src/class.c
+++ b/src/class.c
@@ -533,9 +533,12 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
ps = va_arg(ap, char**);
if (i < argc) {
+ size_t size_t_len;
ss = to_str(mrb, *sp++);
s = mrb_str_ptr(ss);
- len = (mrb_int)strlen(RSTRING_PTR(ss));
+ size_t_len = strlen(RSTRING_PTR(ss));
+ mrb_assert(size_t_len <= MRB_INT_MAX);
+ len = (mrb_int)size_t_len;
if (len < RSTRING_LEN(ss)) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte");
}