From 2d1d2bb59f88956b894a6cdb002bc52a2528e4a8 Mon Sep 17 00:00:00 2001 From: Anders Borum Date: Wed, 5 Aug 2015 18:50:25 +0200 Subject: Include the 4 characters not recognised as hex-number when setting error in parse_len --- src/transports/smart_pkt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/transports/smart_pkt.c b/src/transports/smart_pkt.c index 9ccbd8085..a6ae55d48 100644 --- a/src/transports/smart_pkt.c +++ b/src/transports/smart_pkt.c @@ -351,7 +351,7 @@ static int unpack_pkt(git_pkt **out, const char *line, size_t len) static int32_t parse_len(const char *line) { char num[PKT_LEN_SIZE + 1]; - int i, error; + int i, k, error; int32_t len; const char *num_end; @@ -360,7 +360,14 @@ static int32_t parse_len(const char *line) for (i = 0; i < PKT_LEN_SIZE; ++i) { if (!isxdigit(num[i])) { - giterr_set(GITERR_NET, "Found invalid hex digit in length"); + /* Make sure there are no special characters before passing to error message */ + for (k = 0; k < PKT_LEN_SIZE; ++k) { + if(!isprint(num[k])) { + num[k] = '.'; + } + } + + giterr_set(GITERR_NET, "invalid hex digit in length: '%s'", num); return -1; } } -- cgit v1.2.3