diff options
Diffstat (limited to 'libguile/socket.c')
-rw-r--r-- | libguile/socket.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libguile/socket.c b/libguile/socket.c index 4ee8a84e5..d92607f89 100644 --- a/libguile/socket.c +++ b/libguile/socket.c @@ -1262,15 +1262,19 @@ SCM_DEFINE (scm_make_socket_address, "make-socket-address", 2, 0, 1, "@code{connect} for details).") #define FUNC_NAME s_scm_make_socket_address { + SCM result = SCM_BOOL_F; struct sockaddr *c_address; size_t c_address_size; c_address = scm_c_make_socket_address (family, address, args, &c_address_size); - if (!c_address) - return SCM_BOOL_F; + if (c_address != NULL) + { + result = scm_from_sockaddr (c_address, c_address_size); + free (c_address); + } - return (scm_from_sockaddr (c_address, c_address_size)); + return result; } #undef FUNC_NAME |