diff options
| author | cubicdaiya <[email protected]> | 2014-02-28 01:30:09 +0900 |
|---|---|---|
| committer | cubicdaiya <[email protected]> | 2014-02-28 01:30:09 +0900 |
| commit | 30fe3f5d4b1b2d049c5557f98d4d5addf7bc3dfe (patch) | |
| tree | 644dfca5bedb24318b0f4c24cdf76918a3ef52c9 /src/string.c | |
| parent | c39e2a4e5d966959a05fc61451ddf5419c9e67ba (diff) | |
| download | mruby-30fe3f5d4b1b2d049c5557f98d4d5addf7bc3dfe.tar.gz mruby-30fe3f5d4b1b2d049c5557f98d4d5addf7bc3dfe.zip | |
fix SEGV bug for mrb_str_new
mrb_str_new causes seg-fault when 3rd argument is negative.
Diffstat (limited to 'src/string.c')
| -rw-r--r-- | src/string.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/string.c b/src/string.c index 719be3ff5..8a9ed8a24 100644 --- a/src/string.c +++ b/src/string.c @@ -216,6 +216,9 @@ mrb_value mrb_str_new(mrb_state *mrb, const char *p, size_t len) { struct RString *s; + if ((mrb_int)len < 0) { + mrb_raise(mrb, E_ARGUMENT_ERROR, "negative string size (or size too big)"); + } s = str_new(mrb, p, len); return mrb_obj_value(s); |
