ITS#10387 daemon: fix reverselookup of proxied IPv6 address

This commit is contained in:
Howard Chu 2025-09-01 15:05:53 +01:00
parent 6d9f99e5f5
commit 83030cacbc
3 changed files with 4 additions and 3 deletions

View file

@ -2275,7 +2275,7 @@ slap_listener(
# endif /* LDAP_PF_INET6 */
case AF_INET:
if ( sl->sl_is_proxied ) {
if ( !proxyp( sfd, &from ) ) {
if ( !proxyp( sfd, &from, &len ) ) {
Debug( LDAP_DEBUG_ANY, "slapd(%ld): proxyp failed\n", (long)sfd );
slapd_close( sfd );
return 0;

View file

@ -1569,7 +1569,7 @@ LDAP_SLAPD_F (char *) phonetic LDAP_P(( char *s ));
/*
* proxyp.c
*/
LDAP_SLAPD_F (int) proxyp LDAP_P((ber_socket_t sfd, Sockaddr *from));
LDAP_SLAPD_F (int) proxyp LDAP_P((ber_socket_t sfd, Sockaddr *from, ber_socklen_t *salen));
/*
* referral.c

View file

@ -58,7 +58,7 @@ static const uint8_t proxyp_sig[12] = {
};
int
proxyp( ber_socket_t sfd, Sockaddr *from ) {
proxyp( ber_socket_t sfd, Sockaddr *from, ber_socklen_t *salen ) {
proxyp_header pph;
proxyp_addr ppa;
char peername[LDAP_IPADDRLEN];
@ -170,6 +170,7 @@ proxyp( ber_socket_t sfd, Sockaddr *from ) {
memcpy( &from->sa_in6_addr.sin6_addr, ppa.ip6.src_addr,
sizeof(ppa.ip6.src_addr) );
from->sa_in6_addr.sin6_port = ppa.ip6.src_port;
*salen = sizeof(struct sockaddr_in6);
#else
Debug( LDAP_DEBUG_ANY, "proxyp(%ld): "
"IPv6 proxied addresses disabled\n",