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.
This commit is contained in:
Willy Tarreau 2019-12-11 16:29:10 +01:00
parent fec56c6a76
commit 719e07c989
2 changed files with 2 additions and 2 deletions

View File

@ -1140,7 +1140,7 @@ static int get_old_sockets(const char *unixsocket)
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));

View File

@ -250,7 +250,7 @@ static int uxst_bind_listener(struct listener *listener, char *errmsg, int errle
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 {