diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-06-11 00:25:50 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-06-11 00:25:50 -0700 |
| commit | 16424a14dc3b1a70ef8ebe3923c3dbd482e77c93 (patch) | |
| tree | ae315691b53250bdc8f8152996568e5c53ad3bd2 | |
| parent | ae288fe78dd610fe471200db0c73b00d9aca6dc0 (diff) | |
| parent | 97b9caf8924c0aec76d53c56666e3bf0d13f39fd (diff) | |
| download | mruby-16424a14dc3b1a70ef8ebe3923c3dbd482e77c93.tar.gz mruby-16424a14dc3b1a70ef8ebe3923c3dbd482e77c93.zip | |
Merge pull request #1278 from monaka/pr-calloc-improvement
Check parameters strictly.
| -rw-r--r-- | src/gc.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -184,15 +184,19 @@ mrb_malloc(mrb_state *mrb, size_t len) void* mrb_calloc(mrb_state *mrb, size_t nelem, size_t len) { - void *p = NULL; - size_t size; + void *p; - if (nelem <= SIZE_MAX / len) { + if (nelem > 0 && len > 0 && + nelem <= SIZE_MAX / len) { + size_t size; size = nelem * len; p = mrb_realloc(mrb, 0, size); - if (p && size > 0) + if (p) { memset(p, 0, size); + } + } else { + p = NULL; } return p; |
