From 8e2a87421ccc05376447482ceecada65acbea8e0 Mon Sep 17 00:00:00 2001 From: z3APA3A <3APA3A@3proxy.ru> Date: Tue, 10 Oct 2017 18:21:34 +0300 Subject: [PATCH] Fix: %n terminated log string on IPv6 address --- src/common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/common.c b/src/common.c index 96e4e81..020edd1 100644 --- a/src/common.c +++ b/src/common.c @@ -472,7 +472,7 @@ int dobuf2(struct clientparam * param, unsigned char * buf, const unsigned char break; case 'n': len = param->hostname? (int)strlen((char *)param->hostname) : 0; - if (len > 0 && !strchr((char *)param->hostname, ':')) for(len = 0; param->hostname[len] && i < 4000; len++, i++){ + if (len > 0 && !strchr((char *)param->hostname, ':')) for(len = 0; param->hostname[len] && i < 256; len++, i++){ buf[i] = param->hostname[len]; if(param->srv->nonprintable && (buf[i] < 0x20 || strchr((char *)param->srv->nonprintable, buf[i]))) buf[i] = param->srv->replace; if(doublec && strchr((char *)doublec, buf[i])) { @@ -484,7 +484,6 @@ int dobuf2(struct clientparam * param, unsigned char * buf, const unsigned char buf[i++] = '['; i += myinet_ntop(*SAFAMILY(¶m->req), SAADDR(¶m->req), (char *)buf + i, 64); buf[i++] = ']'; - buf[i++] = 0; } break;