diff --git a/libisofs/util.c b/libisofs/util.c index 16ff93c..159ca82 100644 --- a/libisofs/util.c +++ b/libisofs/util.c @@ -597,8 +597,10 @@ int str2ucs(const char *icharset, const char *input, uint16_t **output) loop_limit = inbytes + 3; ret_ = malloc((numchars+1) * sizeof(uint16_t)); - if (ret_ == NULL) + if (ret_ == NULL) { + free(wsrc_); return ISO_OUT_OF_MEM; + } outbytes = numchars * sizeof(uint16_t); ret = ret_;