Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-08-25 01:39:58 +0300
committerCarlos Martín Nieto <cmn@dwim.me>2015-08-25 01:39:58 +0300
commit1947592461a7f6b97fa32f4517ba65f89ff428e0 (patch)
treed5477e48fc11e7c65e66cd24f3bf26e8c0212b0d
parent6b36945d7e8a780a3063f09c65b3d9fed6525552 (diff)
parent2d1d2bb59f88956b894a6cdb002bc52a2528e4a8 (diff)
Merge pull request #3355 from palmin/palmin/fix-2830HEADmaster
Include the 4 characters not recognised as hex-number in parse_len
-rw-r--r--src/transports/smart_pkt.c11
1 files 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;
}
}