From: Orestis Floros Date: Tue, 8 May 2018 14:05:46 +0000 (+0300) Subject: Replace strncpy call with memcpy when result is not NUL-terminated X-Git-Tag: 4.16~80^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F3282%2Fhead;p=i3%2Fi3 Replace strncpy call with memcpy when result is not NUL-terminated This fixes a new warning from GCC 8.1, -Wstringop-truncation: https://gcc.gnu.org/gcc-8/changes.html https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation Replacing with memcpy is what gcc suggests: > As another example, the following call to strncpy results in copying > to d just the characters preceding the terminating NUL, without > appending the NUL to the end. Assuming the result of strncpy is > necessarily a NUL-terminated string is a common mistake, and so the > call is diagnosed. To avoid the warning when the result is not > expected to be NUL-terminated, call memcpy instead. > void copy (char *d, const char *s) > { > strncpy (d, s, strlen (s)); > } --- diff --git a/i3bar/src/ipc.c b/i3bar/src/ipc.c index 7a657338..56fe2798 100644 --- a/i3bar/src/ipc.c +++ b/i3bar/src/ipc.c @@ -309,7 +309,7 @@ int i3_send_msg(uint32_t type, const char *payload) { char *buffer = smalloc(to_write); char *walk = buffer; - strncpy(buffer, I3_IPC_MAGIC, strlen(I3_IPC_MAGIC)); + memcpy(buffer, I3_IPC_MAGIC, strlen(I3_IPC_MAGIC)); walk += strlen(I3_IPC_MAGIC); memcpy(walk, &len, sizeof(uint32_t)); walk += sizeof(uint32_t); diff --git a/i3bar/src/xcb.c b/i3bar/src/xcb.c index 800c05d4..ae6c0abc 100644 --- a/i3bar/src/xcb.c +++ b/i3bar/src/xcb.c @@ -604,7 +604,7 @@ void handle_button(xcb_button_press_event_t *event) { const size_t len = namelen + strlen("workspace \"\"") + 1; char *buffer = scalloc(len + num_quotes, 1); - strncpy(buffer, "workspace \"", strlen("workspace \"")); + memcpy(buffer, "workspace \"", strlen("workspace \"")); size_t inpos, outpos; for (inpos = 0, outpos = strlen("workspace \""); inpos < namelen;