From 1b3b7f0a270a8e26cf35335d6804a27f7104055e Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 27 Jun 2023 09:10:45 -0500 Subject: [PATCH] Punycode can throw index out of bounds --- src/main/java/eu/siacs/conversations/entities/Bookmark.java | 2 +- src/main/java/eu/siacs/conversations/entities/MucOptions.java | 2 +- src/main/java/eu/siacs/conversations/parser/AbstractParser.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Bookmark.java b/src/main/java/eu/siacs/conversations/entities/Bookmark.java index 0de0dc9da5c28f5d892ddf6713b0542681ba4fdc..483eb2f52ca207b327246d96b03b243052d76c48 100644 --- a/src/main/java/eu/siacs/conversations/entities/Bookmark.java +++ b/src/main/java/eu/siacs/conversations/entities/Bookmark.java @@ -201,7 +201,7 @@ public class Bookmark extends Element implements ListItem { } catch (final IllegalArgumentException e) { try { return tryFix ? getFullJid(gnu.inet.encoding.Punycode.encode(nick), false) : null; - } catch (final gnu.inet.encoding.PunycodeException e2) { + } catch (final gnu.inet.encoding.PunycodeException | ArrayIndexOutOfBoundsException e2) { return null; } } diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index 3336f72f29430b450feec93a910b5a25f92fef03..aab9bc5cc411ee08e350bffead95cea08f13394f 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -620,7 +620,7 @@ public class MucOptions { } catch (final IllegalArgumentException e) { try { return tryFix ? createJoinJid(gnu.inet.encoding.Punycode.encode(nick), false) : null; - } catch (final gnu.inet.encoding.PunycodeException e2) { + } catch (final gnu.inet.encoding.PunycodeException | ArrayIndexOutOfBoundsException e2) { return null; } } diff --git a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java index 75244edb5d5ff2cfe7366ec3ee87c7d9298a4605..b1f73856ce6cf3669d46cb14a4d9bc10c9ea0e59 100644 --- a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java +++ b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java @@ -154,7 +154,7 @@ public abstract class AbstractParser { if (nickname != null && nick != null && !nick.equals(nickname) && gnu.inet.encoding.Punycode.decode(nick).equals(nickname)) { nick = nickname; } - } catch (final gnu.inet.encoding.PunycodeException e) { } + } catch (final gnu.inet.encoding.PunycodeException | ArrayIndexOutOfBoundsException e) { } MucOptions.User user = new MucOptions.User(conference.getMucOptions(), fullJid, nick); if (InvalidJid.isValid(realJid)) { user.setRealJid(realJid);