RFR: 8313900: Possible NULL pointer access in NativeAudioSpectrum and NativeVideoBuffer

Andy Goryachev angorya at openjdk.org
Mon Aug 14 16:56:59 UTC 2023


On Mon, 7 Aug 2023 23:33:37 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:

> - Fixed by checking for `NULL` pointer after memory allocation.
> - In `NativeVideoBuffer` `std::nothrow` was added when allocating `jint` array, so `new` will return `NULL` instead of throwing exception. This done for consistency and also it is not clear how well JNI handles C++ exceptions in this case and what value will Java code get if exception is thrown.

modules/javafx.media/src/main/native/jfxmedia/jni/NativeAudioSpectrum.cpp line 58:

> 56:     CAudioSpectrum *pSpectrum = (CAudioSpectrum*)jlong_to_ptr(nativeRef);
> 57:     CJavaBandsHolder *pHolder = new (std::nothrow) CJavaBandsHolder();
> 58:     if (pHolder == NULL) {

I see more than one occurrence of (std::nothrow) in the code base where the return value is not checked for NULL (directwrite.cpp, GlassAccessible.cpp, GlassTextRangeProvider.cpp - I did not check beyond *.c* wildcard though, so could be more).

Do we want to add a null check there?

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1204#discussion_r1293723731


More information about the openjfx-dev mailing list