[hackers] [dmenu][PATCH] tab-complete: figure out the size before copying

From: NRK <nrk_AT_disroot.org>
Date: Thu, 1 Sep 2022 23:51:43 +0600

we already need to know the string length since `cursor` needs to be
adjusted.

so just calculate the length beforehand and use `memcpy` to copy exactly
as much as needed (as opposed to `strncpy` which always writes `n`
bytes).
---
 dmenu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dmenu.c b/dmenu.c
index 571bc35..54cd5dc 100644
--- a/dmenu.c
+++ b/dmenu.c
_AT_@ -517,9 +517,9 @@ insert:
 	case XK_Tab:
 		if (!sel)
 			return;
-		strncpy(text, sel->text, sizeof text - 1);
+		cursor = strnlen(sel->text, sizeof text - 1);
+		memcpy(text, sel->text, cursor);
 		text[sizeof text - 1] = '\0';
-		cursor = strlen(text);
 		match();
 		break;
 	}
-- 
2.35.1
Received on Thu Sep 01 2022 - 19:51:43 CEST

This archive was generated by hypermail 2.3.0 : Thu Sep 01 2022 - 20:00:38 CEST