aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2022-09-01 23:51:43 +0600
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-09-02 13:00:48 +0200
commit528d39b011afb7ef6fd794ba6b74155d4e69bc68 (patch)
tree75b3a7056698d928254de2681764ef2734d358c1
parent32db2b125190d366be472ccb7cad833248696144 (diff)
tab-complete: figure out the size before copying
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).
-rw-r--r--dmenu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/dmenu.c b/dmenu.c
index 969f6d8..6b285df 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -517,9 +517,9 @@ insert:
517 case XK_Tab: 517 case XK_Tab:
518 if (!sel) 518 if (!sel)
519 return; 519 return;
520 strncpy(text, sel->text, sizeof text - 1); 520 cursor = strnlen(sel->text, sizeof text - 1);
521 memcpy(text, sel->text, cursor);
521 text[sizeof text - 1] = '\0'; 522 text[sizeof text - 1] = '\0';
522 cursor = strlen(text);
523 match(); 523 match();
524 break; 524 break;
525 } 525 }