On Thu, 23 May 2024 07:26:14 GMT, Matthias Baesken <mbaes...@openjdk.org> wrote:
>> When building with ubsan enabled (--enable-uban) on Linux x86_64 and doing >> jtreg tests afterwards I run into this error : >> >> /jdk/src/java.base/unix/native/libjava/ProcessImpl_md.c:562:5: runtime >> error: null pointer passed as argument 2, which is declared to never be null >> #0 0x7fd95bec78d8 in spawnChild >> /jdk/src/java.base/unix/native/libjava/ProcessImpl_md.c:562 >> #1 0x7fd95bec78d8 in startChild >> /jdk/src/java.base/unix/native/libjava/ProcessImpl_md.c:612 >> #2 0x7fd95bec78d8 in Java_java_lang_ProcessImpl_forkAndExec >> /jdk/src/java.base/unix/native/libjava/ProcessImpl_md.c:712 >> #3 0x7fd93797a06d (<unknown module>) >> >> this is the memcpy call getting an unexpected null pointer : >> memcpy(buf+offset, c->pdir, sp.dirlen); gets a second parameter null. >> Something similar was discussed and fixed here >> https://bugs.python.org/issue27570 for Python . >> >> Similar issue in OpenJDK _ >> https://bugs.openjdk.org/browse/JDK-8332473 >> 8332473: ubsan: growableArray.hpp:290:10: runtime error: null pointer passed >> as argument 1, which is declared to never be null > > Matthias Baesken has updated the pull request incrementally with one > additional commit since the last revision: > > remarks Roger Riggs This looks much better. However, if we ever call this with a non-zero `sp.dirlen` and a null `c->pdir`, we'd be in trouble. In the old code, we would have crashed. Now, we will just silently ignore this, and God knows what will happen after that part. I don't have the full context on how this function is used, but if there is some way you can report back with an error to the caller in that case, I think it would be appropriate. ------------- PR Review: https://git.openjdk.org/jdk/pull/19329#pullrequestreview-2073609282