View | Details | Raw Unified | Return to bug 202941 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (-1 / +1 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	vorbis-tools
4
PORTNAME=	vorbis-tools
5
PORTVERSION=	1.4.0
5
PORTVERSION=	1.4.0
6
PORTREVISION=	8
6
PORTREVISION=	9
7
PORTEPOCH=	3
7
PORTEPOCH=	3
8
CATEGORIES=	audio
8
CATEGORIES=	audio
9
MASTER_SITES=	http://downloads.xiph.org/releases/vorbis/
9
MASTER_SITES=	http://downloads.xiph.org/releases/vorbis/
(-)files/patch-oggenv__audio.c (+44 lines)
Line 0 Link Here
1
Original source:
2
https://trac.xiph.org/attachment/ticket/2212/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch
3
4
From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001
5
From: Mark Harris <mark.hsj@gmail.com>
6
Date: Sun, 30 Aug 2015 05:54:46 -0700
7
Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input
8
9
Fixes #2212
10
---
11
 oggenc/audio.c | 10 +++++-----
12
 1 file changed, 5 insertions(+), 5 deletions(-)
13
14
diff --git a/oggenc/audio.c b/oggenc/audio.c
15
index 477da8c..4921fb9 100644
16
--- oggenc/audio.c
17
+++ oggenc/audio.c
18
@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] =
19
 int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
20
 {
21
     int aifc; /* AIFC or AIFF? */
22
-    unsigned int len;
23
-    unsigned char *buffer;
24
+    unsigned int len, readlen;
25
+    unsigned char buffer[22];
26
     unsigned char buf2[8];
27
     aiff_fmt format;
28
     aifffile *aiff = malloc(sizeof(aifffile));
29
@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
30
         return 0; /* Weird common chunk */
31
     }
32
 
33
-    buffer = alloca(len);
34
-
35
-    if(fread(buffer,1,len,in) < len)
36
+    readlen = len < sizeof(buffer) ? len : sizeof(buffer);
37
+    if(fread(buffer,1,readlen,in) < readlen ||
38
+       (len > readlen && !seek_forward(in, len-readlen)))
39
     {
40
         fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n"));
41
         return 0;
42
-- 
43
2.5.0
44

Return to bug 202941