diff options
Diffstat (limited to 'tcpd')
| -rw-r--r-- | tcpd/configure.ac | 6 | ||||
| -rw-r--r-- | tcpd/tcpd.c | 8 | 
2 files changed, 10 insertions, 4 deletions
| diff --git a/tcpd/configure.ac b/tcpd/configure.ac index 3bc0e64..656c82c 100644 --- a/tcpd/configure.ac +++ b/tcpd/configure.ac @@ -568,11 +568,13 @@ RAND_bytes(dummy, 1);  		AC_TRY_COMPILE( [  #include <openssl/ssl.h> + +SSL *p;  ],  [ -SSL_get_servername((SSL *)0, TLSEXT_NAMETYPE_host_name); +(void)SSL_get_servername(p, TLSEXT_NAMETYPE_host_name);  ], [ -                AC_DEFINE_UNQUOTED(HAVE_OPENSSL_SNI,1,[ When OpenSSL supports SNI ]) +                AC_DEFINE_UNQUOTED(HAVE_OPENSSL_SNI,1,[ Whether OpenSSL supports SNI ])  		])  		TLSLIBRARY="$LIBCOURIERTLSOPENSSL" diff --git a/tcpd/tcpd.c b/tcpd/tcpd.c index 0fd0398..7cd3afa 100644 --- a/tcpd/tcpd.c +++ b/tcpd/tcpd.c @@ -1605,9 +1605,13 @@ static void docheckblocklist(struct blocklist_s *p, const char *nameptr)  	int found;  	unsigned char query_A[] = {RFC1035_TYPE_A, 0},  		query_A_and_TXT[] = {RFC1035_TYPE_A, RFC1035_TYPE_TXT, 0}; +	size_t l=strlen(nameptr); -	hostname[0]=0; -	strncat(hostname, nameptr, RFC1035_MAXNAMESIZE); +	if (l > RFC1035_MAXNAMESIZE) +		l=RFC1035_MAXNAMESIZE; + +	memcpy(hostname, nameptr, l); +	hostname[l]=0;  	if (!varname)	varname="BLOCK"; | 
