aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-10-19 23:04:40 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-10-19 23:04:40 +0100
commit88c9d01677fef148657abad0707abd39ad7deccb (patch)
treef43c3c8523eee06667b641ef25a779427d32ecd6
parent66c5134eb58e8566f564d59776bd5431c6333828 (diff)
downloadalisp-88c9d01677fef148657abad0707abd39ad7deccb.tar.gz
alisp-88c9d01677fef148657abad0707abd39ad7deccb.tar.bz2
alisp-88c9d01677fef148657abad0707abd39ad7deccb.zip
stream: Copy on stream_init_stringmaster
Just safer!
-rw-r--r--stream.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/stream.c b/stream.c
index e163066..94fb756 100644
--- a/stream.c
+++ b/stream.c
@@ -12,6 +12,7 @@
* Description: Stream implementation
*/
+#include <stdlib.h>
#include <string.h>
#include "./alisp.h"
@@ -25,7 +26,7 @@ stream_err_t stream_init_string(stream_t *stream, char *name, sv_t contents)
stream->type = STREAM_TYPE_STRING;
stream->name = name;
- stream->string = contents;
+ stream->string = sv_copy(contents);
return STREAM_ERR_OK;
}
@@ -69,7 +70,7 @@ void stream_stop(stream_t *stream)
switch (stream->type)
{
case STREAM_TYPE_STRING:
- // Nothing to do, all dealt with outside of stream
+ free(stream->string.data);
break;
case STREAM_TYPE_PIPE:
case STREAM_TYPE_FILE: