[io] avoid memory leak in sink_vorbis
authorPaul Brossier <piem@piem.org>
Wed, 12 Dec 2018 14:27:57 +0000 (15:27 +0100)
committerPaul Brossier <piem@piem.org>
Wed, 12 Dec 2018 14:27:57 +0000 (15:27 +0100)
src/io/sink_vorbis.c

index 57df1da..e37a150 100644 (file)
@@ -62,7 +62,7 @@ aubio_sink_vorbis_t * new_aubio_sink_vorbis (const char_t *uri,
 
   s->path = AUBIO_ARRAY(char_t, strnlen(uri, PATH_MAX) + 1);
   strncpy(s->path, uri, strnlen(uri, PATH_MAX) + 1);
-  s->path[PATH_MAX - 1] = '\0';
+  s->path[strnlen(uri, PATH_MAX)] = '\0';
 
   s->channels = 0;
 
@@ -92,6 +92,7 @@ void del_aubio_sink_vorbis (aubio_sink_vorbis_t *s)
   vorbis_comment_clear(&s->vc);
   vorbis_info_clear(&s->vi);
 
+  if (s->path) AUBIO_FREE(s->path);
   AUBIO_FREE(s);
 }