aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Sergei Trofimovich <slyich@gmail.com>2023-11-28 22:17:21 +0000
committerLibravatar Simon Ser <contact@emersion.fr>2023-12-14 10:48:24 +0100
commit4683b53817d8618c6c42f98cb299866a96759f6e (patch)
tree12486e0cd9f38cd347d76b6e73cb5c307e5d6454
parentci: checkout wlroots 0.17 (diff)
downloadsway-4683b53817d8618c6c42f98cb299866a96759f6e.tar.gz
sway-4683b53817d8618c6c42f98cb299866a96759f6e.tar.zst
sway-4683b53817d8618c6c42f98cb299866a96759f6e.zip
sway/config.c: use `memcpy()` for known buffer size
`gcc-14` added a new warning around dangerous use of `strncpy()` withi known overflow: ../sway/config.c: In function 'do_var_replacement': ../sway/config.c:983:33: error: '__builtin___strncpy_chk' specified bound depends on the length of the source argument [-Werror=stringop-truncation] 983 | strncpy(newptr, var->value, vvlen); | ^ ../sway/config.c:971:45: note: length computed here 971 | int vvlen = strlen(var->value); | ^~~~~~~~~~~~~~~~~~ It's a bit fishy to rely on truncating behaviour of `strncpy()`. The change uses `memcpy()` as more explicit way to express copy of `vvlen` bytes. (cherry picked from commit 2cd73a33c26ea6510a2f50359b1c550cd9b4fead)
-rw-r--r--sway/config.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sway/config.c b/sway/config.c
index 8c8c148d..4b51dc73 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -975,7 +975,7 @@ char *do_var_replacement(char *str) {
975 int offset = find - str; 975 int offset = find - str;
976 strncpy(newptr, str, offset); 976 strncpy(newptr, str, offset);
977 newptr += offset; 977 newptr += offset;
978 strncpy(newptr, var->value, vvlen); 978 memcpy(newptr, var->value, vvlen);
979 newptr += vvlen; 979 newptr += vvlen;
980 strcpy(newptr, find + vnlen); 980 strcpy(newptr, find + vnlen);
981 free(str); 981 free(str);