From c06f1c5a5ae7d49e4fa2edc333e5a4429504f466 Mon Sep 17 00:00:00 2001 From: jnlon Date: Wed, 21 Aug 2019 21:19:27 -0400 Subject: [PATCH 1/2] Fix crash when parseInt fails on port --- .../pocketgopher/gopherclient/Connection.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java b/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java index a8bd100..facdb6f 100644 --- a/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java +++ b/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java @@ -114,13 +114,25 @@ else if (linesplit.length < 4) } else { - response.add(Page.makePage( - line.charAt(0), //type - linesplit[1], - linesplit[2], - Integer.parseInt(linesplit[3]), - linesplit[0].substring(1) //remove the type tag - )); + try + { + // verify the port parses as an integer + int port = Integer.parseInt(linesplit[3].trim()); + // add the response + response.add(Page.makePage( + line.charAt(0), //type + linesplit[1], + linesplit[2], + port, + linesplit[0].substring(1) //remove the type tag + )); + } + catch (NumberFormatException e) + { + // the port is not a valid integer, add an unknown page + response.add(new UnknownPage(line)); + } + } } From 991b07140dc24a6e700d686c319954179fcc243d Mon Sep 17 00:00:00 2001 From: jnlon Date: Thu, 29 Aug 2019 15:55:02 -0400 Subject: [PATCH 2/2] Catch possible string index OOB exception --- .../afonsotrepa/pocketgopher/gopherclient/Connection.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java b/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java index facdb6f..a5220eb 100644 --- a/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java +++ b/app/src/main/java/com/gmail/afonsotrepa/pocketgopher/gopherclient/Connection.java @@ -127,9 +127,9 @@ else if (linesplit.length < 4) linesplit[0].substring(1) //remove the type tag )); } - catch (NumberFormatException e) + catch (StringIndexOutOfBoundsException | NumberFormatException e) { - // the port is not a valid integer, add an unknown page + // something went wrong, show an unknown page entry response.add(new UnknownPage(line)); }