@@ -2238,7 +2238,7 @@ napi_status napi_get_value_string_latin1(napi_env env,
2238
2238
if (!buf) {
2239
2239
CHECK_ARG (env, result);
2240
2240
*result = val.As <v8::String>()->Length ();
2241
- } else {
2241
+ } else if (bufsize != 0 ) {
2242
2242
int copied = val.As <v8::String>()->WriteOneByte (
2243
2243
reinterpret_cast <uint8_t *>(buf), 0 , bufsize - 1 ,
2244
2244
v8::String::NO_NULL_TERMINATION);
@@ -2247,6 +2247,8 @@ napi_status napi_get_value_string_latin1(napi_env env,
2247
2247
if (result != nullptr ) {
2248
2248
*result = copied;
2249
2249
}
2250
+ } else if (result != nullptr ) {
2251
+ *result = 0 ;
2250
2252
}
2251
2253
2252
2254
return napi_clear_last_error (env);
@@ -2274,7 +2276,7 @@ napi_status napi_get_value_string_utf8(napi_env env,
2274
2276
if (!buf) {
2275
2277
CHECK_ARG (env, result);
2276
2278
*result = val.As <v8::String>()->Utf8Length ();
2277
- } else {
2279
+ } else if (bufsize != 0 ) {
2278
2280
int copied = val.As <v8::String>()->WriteUtf8 (
2279
2281
buf, bufsize - 1 , nullptr , v8::String::REPLACE_INVALID_UTF8 |
2280
2282
v8::String::NO_NULL_TERMINATION);
@@ -2283,6 +2285,8 @@ napi_status napi_get_value_string_utf8(napi_env env,
2283
2285
if (result != nullptr ) {
2284
2286
*result = copied;
2285
2287
}
2288
+ } else if (result != nullptr ) {
2289
+ *result = 0 ;
2286
2290
}
2287
2291
2288
2292
return napi_clear_last_error (env);
@@ -2311,7 +2315,7 @@ napi_status napi_get_value_string_utf16(napi_env env,
2311
2315
CHECK_ARG (env, result);
2312
2316
// V8 assumes UTF-16 length is the same as the number of characters.
2313
2317
*result = val.As <v8::String>()->Length ();
2314
- } else {
2318
+ } else if (bufsize != 0 ) {
2315
2319
int copied = val.As <v8::String>()->Write (
2316
2320
reinterpret_cast <uint16_t *>(buf), 0 , bufsize - 1 ,
2317
2321
v8::String::NO_NULL_TERMINATION);
@@ -2320,6 +2324,8 @@ napi_status napi_get_value_string_utf16(napi_env env,
2320
2324
if (result != nullptr ) {
2321
2325
*result = copied;
2322
2326
}
2327
+ } else if (result != nullptr ) {
2328
+ *result = 0 ;
2323
2329
}
2324
2330
2325
2331
return napi_clear_last_error (env);
0 commit comments