From d38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972 Mon Sep 17 00:00:00 2001 From: sapier Date: Wed, 16 Jul 2014 20:01:00 +0200 Subject: [PATCH] Fix error handling on inconsistent client ready message Fix android makefile to provide a correct dummy githash if detection fails --- build/android/Makefile | 6 +++++- src/server.cpp | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/build/android/Makefile b/build/android/Makefile index 38a3cbb0..6528e839 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -691,7 +691,11 @@ $(ROOT)/jni/src/android_version.h : echo "#define VERSION_PATCH_ORIG $$(cat ${ROOT}/../../CMakeLists.txt | \ grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')" \ >> ${ROOT}/jni/src/android_version.h; \ - echo "#define CMAKE_VERSION_GITHASH \"$$(git rev-parse --short=8 HEAD)\"" \ + export GITHASH=$$(git rev-parse --short=8 HEAD); \ + if [ "x$$GITHASH" = "x" ] ; then \ + export GITHASH=gUnknown; \ + fi; \ + echo "#define CMAKE_VERSION_GITHASH \"$$GITHASH\"" \ >> ${ROOT}/jni/src/android_version.h; \ echo "#define CMAKE_VERSION_STRING STR(VERSION_MAJOR)\".\"STR(VERSION_MINOR)\ \".\"STR(VERSION_PATCH)" \ diff --git a/src/server.cpp b/src/server.cpp index 1e644ce6..40857f84 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1732,14 +1732,20 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) if (playersao == NULL) { errorstream - << "TOSERVER_CLIENT_READY stage 2 client init failed for peer " + << "TOSERVER_CLIENT_READY stage 2 client init failed for peer_id: " << peer_id << std::endl; + m_con.DisconnectPeer(peer_id); return; } - if(datasize < 2+8) + if(datasize < 2+8) { + errorstream + << "TOSERVER_CLIENT_READY client sent inconsistent data, disconnecting peer_id: " + << peer_id << std::endl; + m_con.DisconnectPeer(peer_id); return; + } m_clients.setClientVersion( peer_id, -- 2.30.2