diff --git a/interfaces/kits/js/src/mod_fs/class_atomicfile/ani/atomicfile_ani.cpp b/interfaces/kits/js/src/mod_fs/class_atomicfile/ani/atomicfile_ani.cpp index 614c53008e32b485f4830e4f4d521df46105d815..8756289dad0201211775b0198be5065e5a297853 100644 --- a/interfaces/kits/js/src/mod_fs/class_atomicfile/ani/atomicfile_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/class_atomicfile/ani/atomicfile_ani.cpp @@ -113,6 +113,8 @@ ani_object AtomicFileAni::GetBaseFile(ani_env *env, [[maybe_unused]] ani_object auto result = FileWrapper::Wrap(env, move(fsFile)); if (result == nullptr) { HILOGE("Failed to wrap"); + delete fsFile; + fsFile = nullptr; ErrorHandler::Throw(env, UNKNOWN_ERR); return nullptr; } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/dup_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/dup_ani.cpp index 0ddd81887050e622eb5967681bda8e473f9594e4..5578d8f5a0888615b8ed330478fd0fa182f14c46 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/dup_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/dup_ani.cpp @@ -40,6 +40,8 @@ ani_object DupAni::Dup(ani_env *env, [[maybe_unused]] ani_class clazz, ani_int f const FsFile *file = ret.GetData().value(); auto result = FileWrapper::Wrap(env, move(file)); if (result == nullptr) { + delete file; + file = nullptr; ErrorHandler::Throw(env, UNKNOWN_ERR); return nullptr; } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/fdopen_stream_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/fdopen_stream_ani.cpp index ad98f46e3a581fa336eac8ec604977b9b5436beb..eda3a2bac31f14fd6b9248dc89364e3961ba5840 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/fdopen_stream_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/fdopen_stream_ani.cpp @@ -50,6 +50,8 @@ ani_object FdopenStreamAni::FdopenStreamSync( const FsStream *stream = ret.GetData().value(); auto result = StreamWrapper::Wrap(env, move(stream)); if (result == nullptr) { + delete stream; + stream = nullptr; ErrorHandler::Throw(env, UNKNOWN_ERR); return nullptr; } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/read_lines_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/read_lines_ani.cpp index 10c3ce394cbca152b0576a82b45d521f9f23fc9f..694b0968386de2dd03031539b5cd803b999b382d 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/read_lines_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/read_lines_ani.cpp @@ -76,6 +76,8 @@ ani_object ReadLinesAni::ReadLinesSync( const FsReaderIterator *readerIterator = ret.GetData().value(); auto result = ReaderIteratorAni::Wrap(env, move(readerIterator)); if (result == nullptr) { + delete readerIterator; + readerIterator = nullptr; ErrorHandler::Throw(env, UNKNOWN_ERR); return nullptr; }