On Thu, 26 Feb 2026 01:12:34 GMT, Sergey Bylokhov <[email protected]> wrote:

> CDesktopPeer.m creates dispatch semaphores via dispatch_semaphore_create in 
> both _lsOpenURI and _lsOpenFile but never releases them. Since the JDK is 
> compiled without ARC, each call to Desktop.open(), browse(), mail(), edit(), 
> or print() leaks around 80 bytes.
> 
> The issue is similar to 
> [JDK-8376233](https://bugs.openjdk.org/browse/JDK-8376233)
> 
> The fix adds dispatch_release(semaphore) after dispatch_semaphore_wait in 
> both functions, paired with dispatch_retain before the async block to prevent 
> use-after-free on the timeout path.

src/java.desktop/macosx/native/libawt_lwawt/awt/CDesktopPeer.m line 82:

> 80:         }
> 81:         dispatch_semaphore_signal(semaphore);
> 82:         dispatch_release(semaphore);

You have a **_dispatch_release(semaphore)_** after dispatch_semaphore_wait(), 
would that be sufficient to release the semaphore or do we need to call it here 
as well ?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29927#discussion_r2941534137

Reply via email to