From: Kurt Zeilenga Date: Wed, 3 Nov 1999 21:14:19 +0000 (+0000) Subject: Take address of enclosing structure (in_addr), not member (s_addr). X-Git-Tag: OPENLDAP_REL_ENG_1_2_8~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a431684d03361ec4c0989ecbe45b1c6f09fb770;p=thirdparty%2Fopenldap.git Take address of enclosing structure (in_addr), not member (s_addr). --- diff --git a/CHANGES b/CHANGES index 99bdf275fc..cb095c8600 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,7 @@ Changes included in OpenLDAP 1.2 Release Engineering Fixed -lldap templates y2k bug (ITS#294) Fixed ldbm db_appinit to use u_int32_t instead of int (ITS#295) Fixed lber/io.c Cray T90 specific pointer arithmetic problem (ITS#325) + Fixed s_addr dereferencing (ITS#340) Added TCP_NODELAY support Changed slapd to apply ACL to lastmod attributes Changed slapd.conf default referral diff --git a/clients/finger/main.c b/clients/finger/main.c index ccc689852f..bff4755869 100644 --- a/clients/finger/main.c +++ b/clients/finger/main.c @@ -135,8 +135,8 @@ main( int argc, char **argv ) } if ( dosyslog && !interactive ) { - hp = gethostbyaddr( (char *) &peername.sin_addr.s_addr, - sizeof(peername.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &peername.sin_addr, + sizeof(peername.sin_addr), AF_INET ); syslog( LOG_INFO, "connection from %s (%s)", (hp == NULL) ? "unknown" : hp->h_name, inet_ntoa( peername.sin_addr ) ); diff --git a/clients/gopher/go500.c b/clients/gopher/go500.c index 823589951e..d7d97862c2 100644 --- a/clients/gopher/go500.c +++ b/clients/gopher/go500.c @@ -195,8 +195,8 @@ main( int argc, char **argv ) fromlen = sizeof(from); if ( getpeername( 0, (struct sockaddr *) &from, &fromlen ) == 0 ) { - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); Debug( LDAP_DEBUG_ARGS, "connection from %s (%s)\n", (hp == NULL) ? "unknown" : hp->h_name, inet_ntoa( from.sin_addr ), 0 ); @@ -239,8 +239,8 @@ main( int argc, char **argv ) exit( 1 ); } - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); if ( dosyslog ) { syslog( LOG_INFO, "TCP connection from %s (%s)", diff --git a/clients/gopher/go500gw.c b/clients/gopher/go500gw.c index 7eee0e696e..a28ab31aae 100644 --- a/clients/gopher/go500gw.c +++ b/clients/gopher/go500gw.c @@ -221,8 +221,8 @@ main (int argc, char **argv ) fromlen = sizeof(from); if ( getpeername( 0, (struct sockaddr *) &from, &fromlen ) == 0 ) { - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); Debug( LDAP_DEBUG_ARGS, "connection from %s (%s)\n", (hp == NULL) ? "unknown" : hp->h_name, inet_ntoa( from.sin_addr ), 0 ); @@ -267,8 +267,8 @@ main (int argc, char **argv ) exit( 1 ); } - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); if ( dosyslog ) { syslog( LOG_INFO, "TCP connection from %s (%s)", diff --git a/libraries/libldap/cldap.c b/libraries/libldap/cldap.c index a41643a883..053d8d2d50 100644 --- a/libraries/libldap/cldap.c +++ b/libraries/libldap/cldap.c @@ -126,9 +126,9 @@ cldap_open( char *host, int port ) } for ( i = 0; hp->h_addr_list[ i ] != 0; ++i ) { - SAFEMEMCPY( (char *)&sock.sin_addr.s_addr, + SAFEMEMCPY( (char *)&sock.sin_addr, (char *)hp->h_addr_list[ i ], - sizeof(sock.sin_addr.s_addr)); + sizeof(sock.sin_addr)); if ( add_addr( ld, (struct sockaddr *)&sock ) < 0 ) { close( s ); free( ld ); diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c index bd666f0bf7..3a82041225 100644 --- a/libraries/libldap/os-ip.c +++ b/libraries/libldap/os-ip.c @@ -103,9 +103,9 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address, (void)memset( (char *)&sin, 0, sizeof( struct sockaddr_in )); sin.sin_family = AF_INET; sin.sin_port = port; - SAFEMEMCPY( (char *) &sin.sin_addr.s_addr, + SAFEMEMCPY( (char *) &sin.sin_addr, ( use_hp ? (char *) hp->h_addr_list[ i ] : - (char *) &address ), sizeof( sin.sin_addr.s_addr) ); + (char *) &address ), sizeof( sin.sin_addr ) ); if ( connect( s, (struct sockaddr *)&sin, sizeof( struct sockaddr_in )) >= 0 ) { diff --git a/servers/ldapd/main.c b/servers/ldapd/main.c index f32c05b220..ed76ca2242 100644 --- a/servers/ldapd/main.c +++ b/servers/ldapd/main.c @@ -318,8 +318,8 @@ main( int argc, char **argv ) len = sizeof(from); if ( getpeername( ns, (struct sockaddr *) &from, &len ) == 0 ) { - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); Debug( LDAP_DEBUG_ARGS, "connection from %s (%s)\n", (hp == NULL) ? "unknown" : hp->h_name, inet_ntoa( from.sin_addr ), 0 ); @@ -400,8 +400,8 @@ main( int argc, char **argv ) continue; } - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); #ifdef HAVE_TCPD if ( !hosts_ctl("ldapd", (hp == NULL) ? "unknown" : hp->h_name, diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index ad81340e77..5dd72d6c25 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -271,8 +271,8 @@ slapd_daemon( #if defined(SLAPD_RLOOKUPS) || defined(HAVE_TCPD) hp = gethostbyaddr( (char *) - &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); if(hp) { client_name = hp->h_name; diff --git a/servers/slapd/main.c b/servers/slapd/main.c index 136d3ec05e..78bf405f23 100644 --- a/servers/slapd/main.c +++ b/servers/slapd/main.c @@ -250,8 +250,8 @@ main( int argc, char **argv ) flen = sizeof(from); if ( getpeername( 0, (struct sockaddr *) &from, &flen ) == 0 ) { #ifdef SLAPD_RLOOKUPS - hp = gethostbyaddr( (char *) &(from.sin_addr.s_addr), - sizeof(from.sin_addr.s_addr), AF_INET ); + hp = gethostbyaddr( (char *) &(from.sin_addr), + sizeof(from.sin_addr), AF_INET ); #else hp = NULL; #endif