From: Perttu Ahola Date: Sun, 3 Jun 2012 17:32:44 +0000 (+0300) Subject: Check password hash validity X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=e2ea71113672de8189d8e0a5b347c8cf08ea2bf6;p=zefram%2Fminetest%2Fminetest_engine.git Check password hash validity --- diff --git a/src/base64.cpp b/src/base64.cpp index 0dfba501..90d4de20 100644 --- a/src/base64.cpp +++ b/src/base64.cpp @@ -38,6 +38,13 @@ static inline bool is_base64(unsigned char c) { return (isalnum(c) || (c == '+') || (c == '/')); } +bool base64_is_valid(std::string const& s) +{ + for(int i=0; i +bool base64_is_valid(std::string const& s); std::string base64_encode(unsigned char const* , unsigned int len); std::string base64_decode(std::string const& s); diff --git a/src/server.cpp b/src/server.cpp index 522916a2..771eb365 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2080,6 +2080,12 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) } password[PASSWORD_SIZE-1] = 0; } + + if(!base64_is_valid(password)){ + infostream<<"Server: "<getName()<<" supplied invalid password hash"<