From 2bb84341284b55f02ac6573fe83355d36db283eb Mon Sep 17 00:00:00 2001 From: nick Date: Tue, 19 Mar 2013 14:47:50 +0000 Subject: [PATCH] sockutil: Make sockaddr_address_string conform to its comment --- src/sockutil.c | 4 +++- tests/unit/check_sockutil.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sockutil.c b/src/sockutil.c index dc0bce8..54a9d08 100644 --- a/src/sockutil.c +++ b/src/sockutil.c @@ -42,7 +42,9 @@ const char* sockaddr_address_string( const struct sockaddr* sa, char* dest, size ret = inet_ntop( AF_INET, &in->sin_addr, dest, len ); } else if ( sa->sa_family == AF_INET6 ) { ret = inet_ntop( AF_INET6, &in6->sin6_addr, dest, len ); - } else { + } + + if ( ret == NULL ) { strncpy( dest, "???", len ); } diff --git a/tests/unit/check_sockutil.c b/tests/unit/check_sockutil.c index bc5c661..0c8332a 100644 --- a/tests/unit/check_sockutil.c +++ b/tests/unit/check_sockutil.c @@ -76,10 +76,10 @@ START_TEST( test_sockaddr_address_string_doesnt_overflow_short_buffer ) v4->sin_port = htons( 4777 ); ck_assert_int_eq( 1, inet_pton( AF_INET, "192.168.0.1", &v4->sin_addr )); - result = sockaddr_address_string( &sa, &testbuf[0], 4 ); + result = sockaddr_address_string( &sa, &testbuf[0], 2 ); ck_assert( result == NULL ); - ck_assert_str_eq( "", testbuf ); + ck_assert_str_eq( "??", testbuf ); } END_TEST