summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2002-09-25 12:19:08 +1000
committerDamien Miller <djm@mindrot.org>2002-09-25 12:19:08 +1000
commitb2f844dc513d31de09ae696092497856a2968d26 (patch)
treee6e98240a64bc12ebdd37e024ef2a97ff41dbb52
parent2c961cecb008de61eb0fdd220f406d08a788ee55 (diff)
- (djm) OpenBSD CVS Sync
- stevesk@cvs.openbsd.org 2002/09/23 20:46:27 [canohost.c] change get_peer_ipaddr() and get_local_ipaddr() to not return NULL for non-sockets; fixes a problem passing NULL to snprintf(). ok markus@
-rw-r--r--ChangeLog9
-rw-r--r--canohost.c24
2 files changed, 21 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 1f9ef025..c31b577d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
20020923
+ - (djm) OpenBSD CVS Sync
+ - stevesk@cvs.openbsd.org 2002/09/23 20:46:27
+ [canohost.c]
+ change get_peer_ipaddr() and get_local_ipaddr() to not return NULL for
+ non-sockets; fixes a problem passing NULL to snprintf(). ok markus@
+
+20020923
- (tim) [configure.ac] s/return/exit/ patch by dtucker@zip.com.au
20020922
@@ -696,4 +703,4 @@
save auth method before monitor_reset_key_state(); bugzilla bug #284;
ok provos@
-$Id: ChangeLog,v 1.2476 2002/09/23 23:54:10 tim Exp $
+$Id: ChangeLog,v 1.2477 2002/09/25 02:19:08 djm Exp $
diff --git a/canohost.c b/canohost.c
index 8081ed59..a457d3c5 100644
--- a/canohost.c
+++ b/canohost.c
@@ -12,7 +12,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: canohost.c,v 1.33 2002/07/09 11:56:27 itojun Exp $");
+RCSID("$OpenBSD: canohost.c,v 1.34 2002/09/23 20:46:27 stevesk Exp $");
#include "packet.h"
#include "xmalloc.h"
@@ -218,18 +218,12 @@ get_socket_address(int socket, int remote, int flags)
if (remote) {
if (getpeername(socket, (struct sockaddr *)&addr, &addrlen)
- < 0) {
- debug("get_socket_ipaddr: getpeername failed: %.100s",
- strerror(errno));
+ < 0)
return NULL;
- }
} else {
if (getsockname(socket, (struct sockaddr *)&addr, &addrlen)
- < 0) {
- debug("get_socket_ipaddr: getsockname failed: %.100s",
- strerror(errno));
+ < 0)
return NULL;
- }
}
/* Get the address in ascii. */
if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop),
@@ -243,13 +237,21 @@ get_socket_address(int socket, int remote, int flags)
char *
get_peer_ipaddr(int socket)
{
- return get_socket_address(socket, 1, NI_NUMERICHOST);
+ char *p;
+
+ if ((p = get_socket_address(socket, 1, NI_NUMERICHOST)) != NULL)
+ return p;
+ return xstrdup("UNKNOWN");
}
char *
get_local_ipaddr(int socket)
{
- return get_socket_address(socket, 0, NI_NUMERICHOST);
+ char *p;
+
+ if ((p = get_socket_address(socket, 0, NI_NUMERICHOST)) != NULL)
+ return p;
+ return xstrdup("UNKNOWN");
}
char *