X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/f85e6f6edb2c9415bc10bd2015479d72ea8c5ae2..16fcd5218faf26a9d8a9847564ca3bb8faef782e:/proxy.c diff --git a/proxy.c b/proxy.c index 169be0d1..d970b2bf 100644 --- a/proxy.c +++ b/proxy.c @@ -161,10 +161,14 @@ static void sk_proxy_set_frozen (Socket s, int is_frozen) */ while (!ps->freeze && bufchain_size(&ps->pending_input_data) > 0) { void *data; + char databuf[512]; int len; bufchain_prefix(&ps->pending_input_data, &data, &len); - plug_receive(ps->plug, 0, data, len); + if (len > lenof(databuf)) + len = lenof(databuf); + memcpy(databuf, data, len); bufchain_consume(&ps->pending_input_data, len); + plug_receive(ps->plug, 0, databuf, len); } /* if we're still frozen, we'll have to wait for another