From 47a1c6111727447ed430f58cc4549ded0a30b972 Mon Sep 17 00:00:00 2001 From: foof Date: Tue, 22 Jun 2010 13:30:24 +0000 Subject: [PATCH] need to free the buffer when using open_memstream (unlike how it's done in the sample in the manpage) --- sexp.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sexp.c b/sexp.c index 9ed7c016..41e72cc1 100644 --- a/sexp.c +++ b/sexp.c @@ -61,12 +61,11 @@ sexp sexp_alloc_tagged(sexp ctx, size_t size, sexp_uint_t tag) { sexp sexp_finalize_port (sexp ctx sexp_api_params(self, n), sexp port) { if (sexp_port_openp(port)) { sexp_port_openp(port) = 0; - if (sexp_port_stream(port) && ! sexp_port_no_closep(port)) + if (sexp_port_stream(port) && ! sexp_port_no_closep(port)) { fclose(sexp_port_stream(port)); -#if ! SEXP_USE_STRING_STREAMS - if (sexp_port_buf(port) && sexp_oportp(port)) - free(sexp_port_buf(port)); -#endif + if (sexp_port_buf(port) && sexp_oportp(port)) + free(sexp_port_buf(port)); + } } return SEXP_VOID; }