Преглед изворни кода

Fix: %n terminated log string on IPv6 address

z3APA3A пре 8 година
родитељ
комит
145eb580e4
1 измењених фајлова са 1 додато и 2 уклоњено
  1. 1 2
      src/common.c

+ 1 - 2
src/common.c

@@ -468,7 +468,7 @@ int dobuf2(struct clientparam * param, unsigned char * buf, const unsigned char
 				 break;
 				 break;
 				case 'n':
 				case 'n':
 					len = param->hostname? (int)strlen((char *)param->hostname) : 0;
 					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];
 						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(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])) {
 						if(doublec && strchr((char *)doublec, buf[i])) {
@@ -480,7 +480,6 @@ int dobuf2(struct clientparam * param, unsigned char * buf, const unsigned char
 						buf[i++] = '[';
 						buf[i++] = '[';
 						i += myinet_ntop(*SAFAMILY(&param->req), SAADDR(&param->req), (char *)buf + i, 64);
 						i += myinet_ntop(*SAFAMILY(&param->req), SAADDR(&param->req), (char *)buf + i, 64);
 						buf[i++] = ']';
 						buf[i++] = ']';
-						buf[i++] = 0;
 					}
 					}
 					break;
 					break;