Skip to content

Commit 37a7b48

Browse files
committed
Update length checking to match IRCv3 Message Tags spec
1 parent b5d38c9 commit 37a7b48

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/main/java/org/kitteh/irc/client/library/defaults/DefaultClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
import javax.net.ssl.TrustManagerFactory;
8888
import java.net.InetAddress;
8989
import java.net.InetSocketAddress;
90+
import java.nio.charset.StandardCharsets;
9091
import java.nio.file.Path;
9192
import java.util.ArrayList;
9293
import java.util.Collection;
@@ -601,7 +602,7 @@ public void sendRawLineImmediately(@NonNull String message) {
601602

602603
private void sendRawLine(@NonNull String message, boolean priority, boolean avoidDuplicates) {
603604
Sanity.safeMessageCheck(message);
604-
if (!message.isEmpty() && (message.length() > ((message.charAt(0) == '@') ? 1022 : 510))) {
605+
if (!message.isEmpty() && (message.getBytes(StandardCharsets.UTF_8).length > (((message.charAt(0) == '@') ? 4096 : 0) + 510))) {
605606
throw new IllegalArgumentException("Message too long: " + message.length());
606607
}
607608
synchronized (this.messageSendingLock) {

0 commit comments

Comments
 (0)