diff --git a/v8js_v8.cc b/v8js_v8.cc index 286c432..a4579b1 100644 --- a/v8js_v8.cc +++ b/v8js_v8.cc @@ -65,8 +65,15 @@ void v8js_v8_init(TSRMLS_D) /* {{{ */ /* Set V8 command line flags (must be done before V8::Initialize()!) */ if (v8js_process_globals.v8_flags) { - v8::V8::SetFlagsFromString(v8js_process_globals.v8_flags, - strlen(v8js_process_globals.v8_flags)); + size_t flags_len = strlen(v8js_process_globals.v8_flags); + + if (flags_len > std::numeric_limits::max()) { + zend_throw_exception(php_ce_v8js_exception, + "Length of V8 flags exceeds maximum supported length", 0); + } + else { + v8::V8::SetFlagsFromString(v8js_process_globals.v8_flags, static_cast(flags_len)); + } } /* Initialize V8 */