From 0141a10389276192eac331032ebc9f9b666acfdd Mon Sep 17 00:00:00 2001 From: LAX1DUDE Date: Fri, 30 Sep 2022 22:32:11 -0700 Subject: [PATCH] relay patches --- .../eaglercraft/sp/relay/EaglerSPRelay.java | 2 +- .../eaglercraft/sp/relay/pkt/IPacket.java | 4 ++++ stable-download/sp-relay.jar | Bin 289746 -> 289834 bytes 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/EaglerSPRelay.java b/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/EaglerSPRelay.java index f8659af..96e18a8 100644 --- a/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/EaglerSPRelay.java +++ b/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/EaglerSPRelay.java @@ -288,7 +288,7 @@ public class EaglerSPRelay extends WebSocketServer { String code = ipkt.connectionCode; logger.debug("[{}]: Connected as a client, requested server code: {}", (String) arg0.getAttachment(), code); if(code.length() != config.getCodeLength()) { - logger.debug("The code '{}' is invalid because it's the wrong length, disconnecting"); + logger.debug("The code '{}' is invalid because it's the wrong length, disconnecting", code); arg0.send(IPacket.writePacket(new IPacketFFErrorCode(IPacketFFErrorCode.TYPE_CODE_LENGTH, "The join code is the wrong length, it should be " + config.getCodeLength() + " chars long"))); arg0.close(); diff --git a/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/pkt/IPacket.java b/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/pkt/IPacket.java index ac58468..c38f3c1 100644 --- a/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/pkt/IPacket.java +++ b/sp-relay/src/main/java/net/lax1dude/eaglercraft/sp/relay/pkt/IPacket.java @@ -44,6 +44,10 @@ public class IPacket { } IPacket pkt = clazz.newInstance(); pkt.read(input); + int j = input.available(); + if(j > 0) { + throw new IOException("Packet type " + i + " had " + j + " remaining bytes"); + } return pkt; } catch (InstantiationException | IllegalAccessException e) { EaglerSPRelay.logger.error("Could not instanciate packet {}", i); diff --git a/stable-download/sp-relay.jar b/stable-download/sp-relay.jar index b19c1f378cf218a3673a6df73f6155bfe4a1620c..f1670b9d944fbb293d425a7a5ddc6982b9402c57 100644 GIT binary patch delta 19964 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 IW)If?0cA?AmjD0& delta 19923 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
  • `({KtZC8VCijaxY<1 z11elwXiFgew_%9I-hWk5fY1#D6{ul+;4Hl8UV04jnm`+aB!~(J5_9*L$#p1*I*_X4 zhg3a0fI=4(GBEVk?)8gLp-Bl%^S^6F^E13wBN)Zz?2yt54Xo#oLbXE*S6<^${9xh; zv@JbudSKR!3FIbbj9?a%DR2zVfsrXhC7U8pjTWJicW(+>Vygd<>cI0!W)AadL5$f! z!HStd{LY1c`4~9quz??*xeLxf!FvzQmr{oeOrpAO4s8-z%?@VPOHQN}%aAM8kkg05 z+)WQ537bJxbEqdGCg@ubj5Y`8;bK{}{KKZhh(Ity!}IV6jR0%@kz9r((ab6+kj@Rs zh`(d`->r#^1q3ks3qS-ymoTjVXR6M`<5V>NQ$z$l(L_;7{?G2yGRNVZhCk$wD8>3$oH;0-)a5py=@( zinH070|ET)4Jc~`(8B`RF7M?;p;DxU5+iy@fcEU)0++1-R=7xtt)SjBegEU}!Fn5IOhJ%gRYdQ!Kcm#Zr;KJCa(Vtn6?H8 z*X#RuUS!?@Pud0$`2RU=z0OC$2M3>!zySF4@YkdPrrSW(w3823+5kMTZOyDtSaJ1{ZOEb$)Ro6A)gy+!1J~T`OJr;&@B&9pi~oz z9en3_pllAWEC<}P1%%-MrrYei&xa;g07?eOA!Y7UC~#s5#rfZcEZ7b{o2A(S0&wNO zT@)wDgJk-khy9Rj0{GJI;AFT538B1}!B=+BaFe$GCk^%x75s*$VnCknC}L32>cGNG zh=mT4MuRobJrKAnji&x@5}(EMjE^4h7#t3&iF0AQz#DSH9V$WoLxw1;!&rg;oQQCM zRBRkagWeiwKClH^9^g21G}=C6fKr2gQ=*3Tb?C2ds7lq+w-q5CJI$?zsXg@VAN^1X!s6HQfP5 z(9i8aED}%Usl-#+!0Jjg^hYoMu%6*rJ9PwBVm+E3UcTTkAzzv}s6mE(hvwA7la>#t z;SSw^;rFeP?vVUG4lmCSwz(gyQ7`e--gbf+(B&lNziJYkH19hOxq65Gf7cIjP}AdJ z<+>yOTvHiT5`LH>#y!k-=g7ti$H(ms3!GLT}Dz}i1^kZ>MP zi0b*4K!xs4nZUxc2b&T1EF_`;G6;nB4u`i)T_69&(}FlpfE9Ki3bnpk0vR$0J%{&X zxMc#~1b+id2Hmg1dEoYfx-R|tFN<(HG^7m{0>lW!b*S18Pj?C6EiZs@pZx+aI=TUV z^#UYdUF>I}Qmy!j2DvxU+_2B&_*IWv&Zqu65{z*I7*REwVBFb*;a3U4QFGhi3a-S8m|15g!ud{lDv)WmQbG5ffy^AoLur$~3UX2atzDaxHIz@;;J zws`>1pBLKIOZgs*RyAKJo}0X&oiA_kEhxi{j6Ii2nyS#?s#a