BUILD/MINOR: unix sockets: silence an absurd gcc warning about strncpy()
Apparently gcc developers decided that strncpy() semantics are no longer
valid and now deserve a warning, especially if used exactly as designed.
This results in issue #304. Let's just remove one to the target size to
please her majesty gcc, the God of C Compilers, who tries hard to make
users completely eliminate any use of string.h and reimplement it by
themselves at much higher risks. Pfff....
This can be backported to stable version, the fix is harmless since it
ignores the last zero that is already set on next line.
(cherry picked from commit 719e07c989be48a69fcfcaa404d12d7478de8a1b)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit b5085dfe892bef654841103173079434a32c2a24)
Signed-off-by: Willy Tarreau <w@1wt.eu>
diff --git a/src/haproxy.c b/src/haproxy.c
index d295041..ba3c8ae 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1010,7 +1010,7 @@
unixsocket);
goto out;
}
- strncpy(addr.sun_path, unixsocket, sizeof(addr.sun_path));
+ strncpy(addr.sun_path, unixsocket, sizeof(addr.sun_path) - 1);
addr.sun_path[sizeof(addr.sun_path) - 1] = 0;
addr.sun_family = PF_UNIX;
ret = connect(sock, (struct sockaddr *)&addr, sizeof(addr));
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 7263240..1068fe4 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -250,7 +250,7 @@
goto err_return;
}
- strncpy(addr.sun_path, tempname, sizeof(addr.sun_path));
+ strncpy(addr.sun_path, tempname, sizeof(addr.sun_path) - 1);
addr.sun_path[sizeof(addr.sun_path) - 1] = 0;
}
else {