In case the strncpy() call is advised to copy >=16 characters, ltsymbol 
overflows.
As dwm does not expect to have a ltsymbol bigger than 15 characters, there will 
be
no length check[0]. Our target audience are programmers, they should be able
to figure out how to extend the length by themselves. The reason to add this 
comment
is that some inexperienced users are easily confused by this and the topic 
comes up
from time to time[1].

[0] https://lists.suckless.org/hackers/2208/18484.html
[1] https://lists.suckless.org/dev/2210/35000.html

---
I know that this patch looks like bikeshedding, but the comment is convenient.
I also got messaged in private a few(!) times about that exact issue, but
I'm not sure if I'm allowed to quote these mails here. Anyways, the point is
that this issue arises from time to time and a comment would make our/their
lifes easier.

---
 dwm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dwm.c b/dwm.c
index c2bd8710544e..e400aa028587 100644
--- a/dwm.c
+++ b/dwm.c
@@ -396,6 +396,9 @@ arrange(Monitor *m)
 void
 arrangemon(Monitor *m)
 {
+       /* dwm supports a ltsymbol size up to 15 chars (plus terminating 
NUL-byte).
+        * Anything greater than that will cause issues. If the user wants a 
name
+        * containing more chars, they need to modify the code to fit their 
needs */
        strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
        if (m->lt[m->sellt]->arrange)
                m->lt[m->sellt]->arrange(m);
-- 
2.39.1


Reply via email to