diff options
| author | Masaki Muranaka <[email protected]> | 2014-03-08 13:54:02 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2014-03-08 15:53:59 +0900 |
| commit | 270d25bf2db157c9d1cdcc57bccefabbb1341524 (patch) | |
| tree | 22319de5b6970a0378f0b8c8c7164e7ac34ffedd /src/string.c | |
| parent | 058bb18f280dddb53ac40c838b371e9469024274 (diff) | |
| download | mruby-270d25bf2db157c9d1cdcc57bccefabbb1341524.tar.gz mruby-270d25bf2db157c9d1cdcc57bccefabbb1341524.zip | |
Make type casts safer.
Diffstat (limited to 'src/string.c')
| -rw-r--r-- | src/string.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/string.c b/src/string.c index 85a3cc2a7..123a1dcb5 100644 --- a/src/string.c +++ b/src/string.c @@ -2067,8 +2067,12 @@ mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr) { struct RString *ps = mrb_str_ptr(*ptr); char *s = STR_PTR(ps); + mrb_int len; - if (!s || STR_LEN(ps) != strlen(s)) { + len = STR_LEN(ps); + mrb_assert(len >= 0); + mrb_assert((size_t)len <= SIZE_MAX); + if (!s || (size_t)len != strlen(s)) { mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte"); } return s; |
