diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2016-11-09 11:09:16 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2016-11-09 11:16:39 +0100 |
commit | e9f25ddd0063f7ea65595178d04370d27344305c (patch) | |
tree | f6cc113c1a04fba9d4a57443a0f5dee323f56a83 | |
parent | e9847303e708ab71b4d2c22ceb7d65c89615e18a (diff) | |
download | bitcoin-e9f25ddd0063f7ea65595178d04370d27344305c.tar.xz |
Avoid ugly exception in log on unknown inv type
It is unexpected behavior for `ToString` to raise an exception. It
is expected to do a best-effort attempt at formatting but never fail.
Catch the exception and simply print unknown inv types as hexadecimal.
Fixes #9110.
-rw-r--r-- | src/protocol.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/protocol.cpp b/src/protocol.cpp index 54ad62b1a2..87d6e06848 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -181,7 +181,11 @@ std::string CInv::GetCommand() const std::string CInv::ToString() const { - return strprintf("%s %s", GetCommand(), hash.ToString()); + try { + return strprintf("%s %s", GetCommand(), hash.ToString()); + } catch(const std::out_of_range &) { + return strprintf("0x%08x %s", type, hash.ToString()); + } } const std::vector<std::string> &getAllNetMessageTypes() |