From 50b9ba29b4ba2b5827b8c4c75f44a7113e978cdf Mon Sep 17 00:00:00 2001 From: Peter Olsson Date: Wed, 15 Jan 2014 17:46:14 +0100 Subject: [PATCH] mod_v8: In FileIO, make sure to initialize buffer with NULL, and add extra space for terminating NULL char --- src/mod/languages/mod_v8/src/fsfileio.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mod/languages/mod_v8/src/fsfileio.cpp b/src/mod/languages/mod_v8/src/fsfileio.cpp index ec8fb591c5..a89d1ae892 100644 --- a/src/mod/languages/mod_v8/src/fsfileio.cpp +++ b/src/mod/languages/mod_v8/src/fsfileio.cpp @@ -140,7 +140,8 @@ JS_FILEIO_FUNCTION_IMPL(Read) if (bytes) { if (!_buf || _bufsize < bytes) { - _buf = (char *)switch_core_alloc(_pool, bytes); + _buf = (char *)switch_core_alloc(_pool, bytes+1); + memset(_buf, 0, bytes+1); _bufsize = bytes; } @@ -156,7 +157,12 @@ JS_FILEIO_FUNCTION_IMPL(Read) JS_FILEIO_FUNCTION_IMPL(GetData) { HandleScope handle_scope(info.GetIsolate()); - info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), js_safe_str(_buf))); + + if (!_buflen || !_buf) { + info.GetReturnValue().Set(false); + } else { + info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), _buf)); + } } JS_FILEIO_FUNCTION_IMPL(Write)