~ubuntu-branches/ubuntu/raring/libav/raring-security

« back to all changes in this revision

Viewing changes to debian/patches/post-0.7.1/0058-Check-and-propagate-errors-when-VLC-trees-cannot-be-.patch

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2011-09-28 09:18:34 UTC
  • mfrom: (1.3.7 sid)
  • Revision ID: package-import@ubuntu.com-20110928091834-w415mnuh06h4zpvc
Tags: 4:0.7.1-7ubuntu2
Revert "Convert package to include multiarch support."

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From 5b1f79b092a4684c1e700ea21d5da77c68ca7d44 Mon Sep 17 00:00:00 2001
 
2
From: Laurent Aimar <fenrir@videolan.org>
 
3
Date: Mon, 12 Sep 2011 23:46:49 +0200
 
4
Subject: [PATCH 58/70] Check and propagate errors when VLC trees cannot be built in smacker decoder.
 
5
MIME-Version: 1.0
 
6
Content-Type: text/plain; charset=UTF-8
 
7
Content-Transfer-Encoding: 8bit
 
8
 
 
9
Signed-off-by: Martin Storsjö <martin@martin.st>
 
10
(cherry picked from commit 9676ffba8346791f494451e68d2a3b37a2918a9b)
 
11
 
 
12
Signed-off-by: Anton Khirnov <anton@khirnov.net>
 
13
---
 
14
 libavcodec/smacker.c |   20 ++++++++++++--------
 
15
 1 files changed, 12 insertions(+), 8 deletions(-)
 
16
 
 
17
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
 
18
index 8060e1c..e8de0d8 100644
 
19
--- a/libavcodec/smacker.c
 
20
+++ b/libavcodec/smacker.c
 
21
@@ -134,10 +134,10 @@ static int smacker_decode_bigtree(GetBitContext *gb, HuffContext *hc, DBCtx *ctx
 
22
             return -1;
 
23
         }
 
24
         b1 = get_bits_count(gb);
 
25
-        i1 = get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3);
 
26
+        i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3) : 0;
 
27
         b1 = get_bits_count(gb) - b1;
 
28
         b2 = get_bits_count(gb);
 
29
-        i2 = get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3);
 
30
+        i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 0;
 
31
         b2 = get_bits_count(gb) - b2;
 
32
         val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
 
33
         if(val == ctx->escapes[0]) {
 
34
@@ -290,7 +290,8 @@ static int decode_header_trees(SmackVContext *smk) {
 
35
         smk->mmap_tbl[0] = 0;
 
36
         smk->mmap_last[0] = smk->mmap_last[1] = smk->mmap_last[2] = 1;
 
37
     } else {
 
38
-        smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size);
 
39
+        if (smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size))
 
40
+            return -1;
 
41
     }
 
42
     if(!get_bits1(&gb)) {
 
43
         av_log(smk->avctx, AV_LOG_INFO, "Skipping MCLR tree\n");
 
44
@@ -298,7 +299,8 @@ static int decode_header_trees(SmackVContext *smk) {
 
45
         smk->mclr_tbl[0] = 0;
 
46
         smk->mclr_last[0] = smk->mclr_last[1] = smk->mclr_last[2] = 1;
 
47
     } else {
 
48
-        smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size);
 
49
+        if (smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size))
 
50
+            return -1;
 
51
     }
 
52
     if(!get_bits1(&gb)) {
 
53
         av_log(smk->avctx, AV_LOG_INFO, "Skipping FULL tree\n");
 
54
@@ -306,7 +308,8 @@ static int decode_header_trees(SmackVContext *smk) {
 
55
         smk->full_tbl[0] = 0;
 
56
         smk->full_last[0] = smk->full_last[1] = smk->full_last[2] = 1;
 
57
     } else {
 
58
-        smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size);
 
59
+        if (smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size))
 
60
+            return -1;
 
61
     }
 
62
     if(!get_bits1(&gb)) {
 
63
         av_log(smk->avctx, AV_LOG_INFO, "Skipping TYPE tree\n");
 
64
@@ -314,7 +317,8 @@ static int decode_header_trees(SmackVContext *smk) {
 
65
         smk->type_tbl[0] = 0;
 
66
         smk->type_last[0] = smk->type_last[1] = smk->type_last[2] = 1;
 
67
     } else {
 
68
-        smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size);
 
69
+        if (smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size))
 
70
+            return -1;
 
71
     }
 
72
 
 
73
     return 0;
 
74
@@ -522,8 +526,8 @@ static av_cold int decode_init(AVCodecContext *avctx)
 
75
         return -1;
 
76
     }
 
77
 
 
78
-    decode_header_trees(c);
 
79
-
 
80
+    if (decode_header_trees(c))
 
81
+        return -1;
 
82
 
 
83
     return 0;
 
84
 }
 
85
-- 
 
86
1.7.4.1
 
87