Commit Diff


commit - 802cbf0d454e142b837b2b84092733daf3186e6b
commit + db8dca013603a7f7e26c3a688e485debbef9136a
blob - 7aa0dfbc8343c3169a3ed63830dd051f5850d37f
blob + 4559b40802d31cb0c5d5a24ebccf639acc38ba77
--- client.c
+++ client.c
@@ -358,7 +358,7 @@ handle_message(struct imsg *imsg, size_t len)
 {
 	struct np_msg_header	 hdr;
 	uint16_t		 slen;
-	uint8_t			*data;
+	uint8_t			*data, *dot;
 
 	parse_message(imsg->data, len, &hdr, &data);
 	len -= HEADERSIZE;
@@ -386,6 +386,9 @@ handle_message(struct imsg *imsg, size_t len)
 		data += sizeof(slen);
 		slen = le16toh(slen);
 
+		if ((dot = memchr(data, '.', slen)) != NULL)
+			slen -= dot - data;
+
 		if (slen != strlen(VERSION9P) ||
 		    memcpy(data, VERSION9P, strlen(VERSION9P)) != 0 ||
 		    msize == 0) {