]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: compat: fix segfault on FreeBSD
authorJoris Dedieu <joris.dedieu@gmail.com>
Fri, 12 Jun 2015 23:05:11 +0000 (01:05 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 13 Jun 2015 06:25:36 +0000 (08:25 +0200)
Since commit 65d805fd witch removes standard.h from compat.h some
values were not properly set on FreeBSD. This caused a segfault
at startup when smp_resolve_args is called.

As FreeBSD have IP_BINDANY, CONFIG_HAP_TRANSPARENT is define. This
cause struct conn_src to be extended with some fields. The size of
this structure was incorrect. Including netinet/in.h fix this issue.

While diving in code preprocessing, I found that limits.h was require
to properly set MAX_HOSTNAME_LEN, ULONG_MAX, USHRT_MAX and others
system limits on FreeBSD.

include/common/compat.h

index ecbc3b1164153273b6e808c2b057c796c74aa8b7..07dd01d8c15e50e8cd928d98a9b0491de2e0f93f 100644 (file)
 #ifndef _COMMON_COMPAT_H
 #define _COMMON_COMPAT_H
 
+#include <limits.h>
 /* This is needed on Linux for Netfilter includes */
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
+#include <netinet/in.h>
 
 #ifndef BITS_PER_INT
 #define BITS_PER_INT    (8*sizeof(int))