From 69ac38c1a847348de4c05fd4e19abf17a10de8b3 Mon Sep 17 00:00:00 2001 From: Jacob Nevins Date: Wed, 26 Oct 2005 22:18:11 +0000 Subject: [PATCH 1/1] Fix an error I introduced into SSH packet logging in r5642: some outgoing packets over about 256 bytes would be logged with 12 bytes of preceding garbage. (But the rest of the packet was logged in its entirety. This holds for packets where (int(len/256)%2)==1, with an appropriate fudge factor applied to `len'.) Ahem. [originally from svn r6429] [r5642 == c09d885b2783906a4427410da7a9cbe3cd6abfd5] --- ssh.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ssh.c b/ssh.c index 72536c87..0738b309 100644 --- a/ssh.c +++ b/ssh.c @@ -1587,7 +1587,7 @@ static void ssh_pkt_ensure(struct Packet *pkt, int length) { if (pkt->maxlen < length) { unsigned char *body = pkt->body; - int offset = body ? pkt->data - body : 0; + int offset = body ? body - pkt->data : 0; pkt->maxlen = length + 256; pkt->data = sresize(pkt->data, pkt->maxlen + APIEXTRA, unsigned char); if (body) pkt->body = pkt->data + offset; @@ -1697,10 +1697,10 @@ static struct Packet *ssh1_pkt_init(int pkt_type) static struct Packet *ssh2_pkt_init(int pkt_type) { struct Packet *pkt = ssh_new_packet(); - pkt->length = 5; + pkt->length = 5; /* space for packet length + padding length */ pkt->forcepad = 0; ssh_pkt_addbyte(pkt, (unsigned char) pkt_type); - pkt->body = pkt->data + pkt->length; + pkt->body = pkt->data + pkt->length; /* after packet type */ return pkt; } -- 2.45.2