| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 | Description: w: Set array bound for tty
 There is no guarantee that the length of whatever
 sd_session_get_tty() returns is going to be under UT_LINESIZE
 so copying until strlen of the source string could be an issue.
 .
 Instead copy at most UT_LINESIZE-1 characters and break if the
 source string is at '\0'
Author: Werner Fink <werner@suse.de>
Origin: upstream, https://gitlab.com/procps-ng/procps/-/commit/241cb88542c862a4e682fb64884b4c993c176554
Applied-Upstream: 4.0.5
Last-Update: 2025-04-14
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/w.c
+++ b/src/w.c
@@ -546,12 +546,15 @@
         char *sd_tty;
 
         if (sd_session_get_tty(session, &sd_tty) >= 0) {
-            for (i = 0; i < strlen (sd_tty); i++)
+           for (i = 0; i < UT_LINESIZE; i++) {
+               if (sd_tty[i] == '\0') break;
+
                 /* clean up tty if garbled */
 	        if (isalnum(sd_tty[i]) || (sd_tty[i] == '/'))
 		    tty[i + 5] = sd_tty[i];
 		else
 		    tty[i + 5] = '\0';
+            }
 	    free(sd_tty);
 	}
     } else {
 |