Commit Diff


commit - b80445172a8a8141b2e748339ba45de822956f5e
commit + 7452ce7d14f2164d0ebbff3b129b933191345bcf
blob - 150898bba03e6cbac0ab17ae303ccb2696bda212
blob + 10acae1b1d3ecb0e2c6fac34c7fd1f50b483b38b
--- control.c
+++ control.c
@@ -247,10 +247,11 @@ control_dispatch_imsg(int fd, short event, void *bula)
 
 		switch (imsg.hdr.type) {
 		case IMSG_CTL_OPEN_URL: {
-			char uri[GEMINI_URL_LEN] = { 0 };
+			static char uri[GEMINI_URL_LEN];
 
-			if (IMSG_DATA_SIZE(imsg) > sizeof(uri)-1)
+			if (IMSG_DATA_SIZE(imsg) >= sizeof(uri))
 				break;
+			memset(uri, 0, sizeof(uri));
 			memcpy(uri, imsg.data, sizeof(uri));
 			if (uri[IMSG_DATA_SIZE(imsg)-1] != '\0')
 				break;