From 60dea6e78555f5943070a26f86736661e4a4a5e9 Mon Sep 17 00:00:00 2001 From: zhuhongtao66 Date: Thu, 22 Dec 2022 16:05:06 +0800 Subject: [PATCH] Bug fix for dir.read of out of memory Signed-off-by: zhuhongtao66 --- .../kits/js/src/mod_fileio/class_dir/dir_n_exporter.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/interfaces/kits/js/src/mod_fileio/class_dir/dir_n_exporter.cpp b/interfaces/kits/js/src/mod_fileio/class_dir/dir_n_exporter.cpp index 7a7fa28ea..30d829527 100644 --- a/interfaces/kits/js/src/mod_fileio/class_dir/dir_n_exporter.cpp +++ b/interfaces/kits/js/src/mod_fileio/class_dir/dir_n_exporter.cpp @@ -203,7 +203,9 @@ napi_value DirNExporter::Read(napi_env env, napi_callback_info info) } else if (string(res->d_name) == "." || string(res->d_name) == "..") { continue; } else { - tmpDirent = *res; + if (EOK != memcpy_s(&tmpDirent, sizeof(dirent), res, res->d_reclen)) { + return UniError(errno); + } break; } } while (true); @@ -276,7 +278,10 @@ napi_value DirNExporter::ReadSync(napi_env env, napi_callback_info info) } else if (string(res->d_name) == "." || string(res->d_name) == "..") { continue; } else { - tmpDirent = *res; + if (EOK != memcpy_s(&tmpDirent, sizeof(dirent), res, res->d_reclen)) { + UniError(errno).ThrowErr(env); + return nullptr; + } break; } } while (true); -- Gitee