43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From 93b6e4b5b0efa47b318151d39c35277fc06525f1 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <93b6e4b5b0efa47b318151d39c35277fc06525f1.1511192342.git.agx@sigxcpu.org>
|
|
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
Date: Wed, 15 Nov 2017 18:36:58 +0100
|
|
Subject: [PATCH] Handle vorbis_analysis_headerout errors
|
|
|
|
This is related to
|
|
|
|
https://github.com/xiph/vorbis/pull/34
|
|
|
|
but could also happen today with on other errors in the called function.
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882236
|
|
Forwarded: sox-devel@lists.sourceforge.net
|
|
---
|
|
src/vorbis.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
Index: sox/src/vorbis.c
|
|
===================================================================
|
|
--- sox.orig/src/vorbis.c
|
|
+++ sox/src/vorbis.c
|
|
@@ -270,8 +270,11 @@ static int write_vorbis_header(sox_forma
|
|
vc.comment_lengths[i] = strlen(text);
|
|
}
|
|
}
|
|
- vorbis_analysis_headerout( /* Build the packets */
|
|
- &ve->vd, &vc, &header_main, &header_comments, &header_codebooks);
|
|
+ if (vorbis_analysis_headerout( /* Build the packets */
|
|
+ &ve->vd, &vc, &header_main, &header_comments, &header_codebooks) < 0) {
|
|
+ ret = HEADER_ERROR;
|
|
+ goto cleanup;
|
|
+ }
|
|
|
|
ogg_stream_packetin(&ve->os, &header_main); /* And stream them out */
|
|
ogg_stream_packetin(&ve->os, &header_comments);
|
|
@@ -280,6 +283,7 @@ static int write_vorbis_header(sox_forma
|
|
while (ogg_stream_flush(&ve->os, &ve->og) && ret == HEADER_OK)
|
|
if (!oe_write_page(&ve->og, ft))
|
|
ret = HEADER_ERROR;
|
|
+cleanup:
|
|
for (i = 0; i < vc.comments; ++i)
|
|
free(vc.user_comments[i]);
|
|
free(vc.user_comments);
|