| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
As documented in napi_wrap section, the returned reference must be deleted with `napi_delete_reference` in response to the finalize callback, in which `napi_unwrap` and `napi_remove_wrap` is not available. When the reference needs to be deleted early, it should be deleted after the wrapped value is not accessed with `napi_unwrap` and `napi_remove_wrap` too. This test is previously added in response to duplicating the test https://github.com/nodejs/node-addon-api/blob/main/test/objectwrap_constructor_exception.cc in the node-addon-api. As Napi::ObjectWrap<> is a subclass of Napi::Reference<>, napi_remove_wrap in the destructor of Napi::ObjectWrap<> is called before napi_delete_reference in the destructor of Napi::Reference<>.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
As documented in napi_wrap section, the returned reference must be deleted with `napi_delete_reference` in response to the finalize callback, in which `napi_unwrap` and `napi_remove_wrap` is not available. When the reference needs to be deleted early, it should be deleted after the wrapped value is not accessed with `napi_unwrap` and `napi_remove_wrap` too. This test is previously added in response to duplicating the test https://github.com/nodejs/node-addon-api/blob/main/test/objectwrap_constructor_exception.cc in the node-addon-api. As Napi::ObjectWrap<> is a subclass of Napi::Reference<>, napi_remove_wrap in the destructor of Napi::ObjectWrap<> is called before napi_delete_reference in the destructor of Napi::Reference<>. PR-URL: #45406 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
As documented in napi_wrap section, the returned reference must be deleted with `napi_delete_reference` in response to the finalize callback, in which `napi_unwrap` and `napi_remove_wrap` is not available. When the reference needs to be deleted early, it should be deleted after the wrapped value is not accessed with `napi_unwrap` and `napi_remove_wrap` too. This test is previously added in response to duplicating the test https://github.com/nodejs/node-addon-api/blob/main/test/objectwrap_constructor_exception.cc in the node-addon-api. As Napi::ObjectWrap<> is a subclass of Napi::Reference<>, napi_remove_wrap in the destructor of Napi::ObjectWrap<> is called before napi_delete_reference in the destructor of Napi::Reference<>. PR-URL: #45406 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
As documented in napi_wrap section, the returned reference must be deleted with `napi_delete_reference` in response to the finalize callback, in which `napi_unwrap` and `napi_remove_wrap` is not available. When the reference needs to be deleted early, it should be deleted after the wrapped value is not accessed with `napi_unwrap` and `napi_remove_wrap` too. This test is previously added in response to duplicating the test https://github.com/nodejs/node-addon-api/blob/main/test/objectwrap_constructor_exception.cc in the node-addon-api. As Napi::ObjectWrap<> is a subclass of Napi::Reference<>, napi_remove_wrap in the destructor of Napi::ObjectWrap<> is called before napi_delete_reference in the destructor of Napi::Reference<>. PR-URL: #45406 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com>
| Back | FazBrowse Home | New Git URL |
As documented in napi_wrap section, the returned reference must be
deleted with napi_delete_reference in response to the finalize
callback, in which napi_unwrap and napi_remove_wrap is not
available.
When the reference needs to be deleted early, it should be
deleted after the wrapped value is not accessed with napi_unwrap
and napi_remove_wrap too.
This test is previously added in response to duplicating the test
https://github.com/nodejs/node-addon-api/blob/main/test/objectwrap_constructor_exception.cc
in the node-addon-api. As Napi::ObjectWrap<> is a subclass of
Napi::Reference<>, napi_remove_wrap in the destructor of
Napi::ObjectWrap<> is called before napi_delete_reference in the
destructor of Napi::Reference<>.
This fix is intended to fix the use-after-free problem in #44141.