summaryrefslogtreecommitdiff
path: root/libguile/socket.c
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2007-09-02 10:55:58 +0000
committerLudovic Courtès <ludo@gnu.org>2007-09-02 10:55:58 +0000
commit1ac5fb45bca1f963ccd654efda3f98604f39f5a0 (patch)
treee79ed2c29470f1000d7318e05348e01204dfbd41 /libguile/socket.c
parentd7c0c26d886c35dc168cf07cf16b51c0594b21be (diff)
downloadguile-1ac5fb45bca1f963ccd654efda3f98604f39f5a0.tar.gz
Changes from arch/CVS synchronization
Diffstat (limited to 'libguile/socket.c')
-rw-r--r--libguile/socket.c10
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