]> git.sur5r.net Git - i3/i3/commitdiff
Replace strncpy call with memcpy when result is not NUL-terminated 3282/head
authorOrestis Floros <orestisf1993@gmail.com>
Tue, 8 May 2018 14:05:46 +0000 (17:05 +0300)
committerOrestis Floros <orestisf1993@gmail.com>
Tue, 8 May 2018 14:05:46 +0000 (17:05 +0300)
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));
>    }

i3bar/src/ipc.c
i3bar/src/xcb.c

index 7a657338472e7fd6941e38a82b3e7eaf78e1654f..56fe279899c442572c7f8ba99d2f60b154a302b9 100644 (file)
@@ -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);
index 800c05d46288451fe7ca516e6e075e1f1b0a3180..ae6c0abc1e484801844b5b36d2ea6d463792b0eb 100644 (file)
@@ -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;