RFR: 8343802: Prevent NULL usage backsliding [v6]

Ioi Lam iklam at openjdk.org
Mon Feb 10 17:33:12 UTC 2025


On Mon, 10 Feb 2025 15:24:13 GMT, Nizar Benalla <nbenalla at openjdk.org> wrote:

>> Please review this patch to add a test that checks the hotspot sources and test files for usages of NULL.
>> It scans files in those directories, filtering out certain files as well as all `.c`, `.java`, `.class`, `.jar` and `.zip` files in test sources. 
>> 
>> Before adding line 86 and excluding `os_windows.cpp`, the test failed with:
>> 
>> 
>> Error: 'NULL' found in /w/jdk/src/hotspot/os/windows/os_windows.cpp at line 4436:
>>     HMODULE hModule = NULL;
>> Error: 'NULL' found in /w/jdk/src/hotspot/os/windows/os_windows.cpp at line 4437:
>>     GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, NULL, &hModule);
>> java.lang.RuntimeException: Found usage of 'NULL' in source files. See errors above.
>> 	at TestNoNULL.main(TestNoNULL.java:73)
>> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>> 	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
>> 	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
>> 	at java.base/java.lang.Thread.run(Thread.java:1447)
>
> Nizar Benalla has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
> 
>  - pass an empty set the method rather than a boolean
>    
>    better exception handling/message when encountering a binary file
>  - Merge remote-tracking branch 'upstream/master' into NULL-Checking-in-hotspot
>  - filter out `.zip` files
>  - Merge remote-tracking branch 'upstream/master' into NULL-Checking-in-hotspot
>  - trivial change, if .java files are filtered out then so should .class files
>  - revert to the original regex and remove the exclusion of os_windows.cpp
>  - update based on feedback
>  - Add a test to prevent NULL backsliding

Can this be accomplished without introducing a new test? E.g., add this to globalDefinitions.hpp:


#ifdef NULL
#undef NULL
#endif
#define NULL (do not use 

const char* x = NULL;  // gcc gives error

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

PR Comment: https://git.openjdk.org/jdk/pull/23466#issuecomment-2648758853


More information about the hotspot-dev mailing list