From 71b3c90944177b4364e4667510e443331be1486e Mon Sep 17 00:00:00 2001 From: Kamilake Date: Wed, 23 Jul 2025 09:45:21 +0900 Subject: [PATCH 1/2] Prevent potential SIGSEGV crash due to null opusEncoder reference in AudioConnection --- .../java/net/dv8tion/jda/internal/audio/AudioConnection.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java b/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java index 7e9d65ab63..0a92115210 100644 --- a/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java +++ b/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java @@ -581,6 +581,11 @@ private ByteBuffer encodeToOpus(ByteBuffer rawAudio) } ((Buffer) nonEncodedBuffer).flip(); + if (opusEncoder == null || opusEncoder.getValue() == null) + { + throw new IllegalStateException("Opus encoder is not initialized! This should never happen, please report this as a bug."); + } + int result = Opus.INSTANCE.opus_encode(opusEncoder, nonEncodedBuffer, OpusPacket.OPUS_FRAME_SIZE, encoded, encoded.capacity()); if (result <= 0) { From 57aa0f82c3ab15a78e5b70d7e37e9ba11632b639 Mon Sep 17 00:00:00 2001 From: Kamilake Date: Wed, 23 Jul 2025 09:58:29 +0900 Subject: [PATCH 2/2] Formatting --- .../java/net/dv8tion/jda/internal/audio/AudioConnection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java b/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java index 0a92115210..b06e7401a2 100644 --- a/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java +++ b/src/main/java/net/dv8tion/jda/internal/audio/AudioConnection.java @@ -583,7 +583,7 @@ private ByteBuffer encodeToOpus(ByteBuffer rawAudio) if (opusEncoder == null || opusEncoder.getValue() == null) { - throw new IllegalStateException("Opus encoder is not initialized! This should never happen, please report this as a bug."); + throw new IllegalStateException("Opus encoder is not initialized! This should never happen, please report this as a bug."); } int result = Opus.INSTANCE.opus_encode(opusEncoder, nonEncodedBuffer, OpusPacket.OPUS_FRAME_SIZE, encoded, encoded.capacity());