From 165e93bf29769b38a4cf3297c8a5215cecaf5c3a Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Wed, 14 Mar 2018 18:12:55 +0100 Subject: [PATCH] stratum: function to check hex strings validity --- stratum/client_submit.cpp | 5 +++++ stratum/util.cpp | 8 ++++++++ stratum/util.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/stratum/client_submit.cpp b/stratum/client_submit.cpp index 02227ec..11efebf 100644 --- a/stratum/client_submit.cpp +++ b/stratum/client_submit.cpp @@ -463,6 +463,11 @@ bool client_submit(YAAMP_CLIENT *client, json_value *json_params) return true; } } + else if(!ishexa(extranonce2, client->extranonce2size*2)) { + client_submit_error(client, job, 27, "Invalid nonce2", extranonce2, ntime, nonce); + client->submit_bad++; + return true; + } /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/stratum/util.cpp b/stratum/util.cpp index 9329944..e18d211 100644 --- a/stratum/util.cpp +++ b/stratum/util.cpp @@ -417,6 +417,14 @@ void hexlify(char *hex, const unsigned char *bin, int len) sprintf(hex+strlen(hex), "%02x", bin[i]); } +bool ishexa(char *hex, int len) +{ + for(int i=0; i= '0' && v <= '9') diff --git a/stratum/util.h b/stratum/util.h index 685e1e3..7afdd1b 100644 --- a/stratum/util.h +++ b/stratum/util.h @@ -86,6 +86,8 @@ void ser_string_be2(const char *input, char *output, int len); void string_be(const char *input, char *output); void string_be1(char *s); +bool ishexa(char *hex, int len); + void hexlify(char *hex, const unsigned char *bin, int len); void binlify(unsigned char *bin, const char *hex);