From ed847e831b562ee86f4d1eba49013ba844d76d2b Mon Sep 17 00:00:00 2001
From: GoldenTails <milestailsprower101n2@gmail.com>
Date: Fri, 20 Dec 2019 20:28:30 -0600
Subject: [PATCH] Fix pasting going out of bounds and dash the possibility of
 memory leaks while pasting.

---
 src/m_menu.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index eb9bbaffe6..ad0f70eb2d 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -10436,14 +10436,16 @@ static void M_HandleConnectIP(INT32 choice)
 			if (l >= 28-1)
 				break;
 
-			const char *paste = I_ClipboardPaste(); // Paste clipboard into char
+			char *paste = (char *)I_ClipboardPaste(); // Paste clipboard into char
 
 			if ( ctrldown ) {
 				switch (choice) {
 					case 118: // ctrl+v, pasting
-						if (paste != NULL)
+						if (paste != NULL) {
+							if (strlen(paste) + strlen(setupm_ip) >= 28-1)
+								paste[28-1 - strlen(setupm_ip)] = 0;
 							strcat(setupm_ip, paste); // Concat the ip field with clipboard
-						setupm_ip[127] = 0; // Truncate to maximum length
+						}
 						break;
 					case 99: // ctrl+c, copying
 						I_ClipboardCopy(setupm_ip, l);
-- 
GitLab