mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-19 12:16:59 +00:00
BUG/MEDIUM: systemd-wrapper: fix locating of haproxy binary
OpenBSD complains this way due to strncat() : src/haproxy-systemd-wrapper.o(.text+0xd5): In function `spawn_haproxy': src/haproxy-systemd-wrapper.c:33: warning: strcat() is almost always misused, please use strlcat() In fact, the code before strncat() here is wrong, because it may dereference a NULL if /proc/self/exe is not readable. So fix it and get rid of strncat() at the same time. No backport is needed.
This commit is contained in:
parent
e9187f8263
commit
e5eddafa89
@ -24,13 +24,18 @@ static char **main_argv;
|
||||
|
||||
static void locate_haproxy(char *buffer, size_t buffer_size)
|
||||
{
|
||||
char* end = NULL;
|
||||
char *end = NULL;
|
||||
|
||||
if (readlink("/proc/self/exe", buffer, buffer_size) > 0)
|
||||
end = strrchr(buffer, '/');
|
||||
if (end == NULL)
|
||||
|
||||
if (end == NULL) {
|
||||
strncpy(buffer, "/usr/sbin/haproxy", buffer_size);
|
||||
return;
|
||||
}
|
||||
end[1] = '\0';
|
||||
strncat(buffer, "haproxy", buffer_size);
|
||||
strncpy(end + 1, "haproxy", buffer + buffer_size - (end + 1));
|
||||
buffer[buffer_size - 1] = '\0';
|
||||
}
|
||||
|
||||
static void spawn_haproxy(char **pid_strv, int nb_pid)
|
||||
|
Loading…
Reference in New Issue
Block a user