+2007-09-02 Ludovic Courtès <ludo@gnu.org>
+
+ * NEWS: Mention memory leak fix in `make-socket-address'.
+
2007-09-01 Ludovic Courtès <ludo@gnu.org>
* NEWS: Mention duplicate binding warnings to stderr.
** Expressions like "(set! 'x #t)" no longer yield a crash
** Warnings about duplicate bindings now go to stderr
+** A memory leak in `make-socket-address' was fixed
** Build problems on Solaris fixed
* Implementation improvements
+2007-09-02 Ludovic Courtès <ludo@gnu.org>
+
+ * socket.c (scm_make_socket_address): Free C_ADDRESS after use.
+ This fixes a memory leak.
+
2007-08-26 Han-Wen Nienhuys <hanwen@lilypond.org>
* fports.c gc-card.c gc.c gc.h ioext.c ports.c ports.h weaks.h
"@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