ALT Linux repos
S: | 1.3.7-alt1 |
5.0: | 1.2.0-alt3 |
4.1: | 1.2.0-alt3.M41.1 |
4.0: | 1.2.0-alt3 |
+updates: | 1.1.2-alt3 |
3.0: | 1.1.1-alt2 |
Group :: System/Libraries
RPM: libvorbis
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: 0005-Fix-shift-by-negative-value-when-reading-blocksize.patch
Download
Download
From ea8b03fce93444cb3cf0131909e15b4f8856e863 Mon Sep 17 00:00:00 2001
From: Thomas Daede <daede003@umn.edu>
Date: Wed, 23 May 2018 15:23:09 -0700
Subject: [PATCH] Fix shift by negative value when reading blocksize.
---
lib/info.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/info.c b/lib/info.c
index 3fbb7c75..23efa25c 100644
--- a/lib/info.c
+++ b/lib/info.c
@@ -203,6 +203,7 @@ void vorbis_info_clear(vorbis_info *vi){
static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
codec_setup_info *ci=vi->codec_setup;
+ int bs;
if(!ci)return(OV_EFAULT);
vi->version=oggpack_read(opb,32);
@@ -215,8 +216,12 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32);
vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32);
- ci->blocksizes[0]=1<<oggpack_read(opb,4);
- ci->blocksizes[1]=1<<oggpack_read(opb,4);
+ bs = oggpack_read(opb,4);
+ if(bs<0)goto err_out;
+ ci->blocksizes[0]=1<<bs;
+ bs = oggpack_read(opb,4);
+ if(bs<0)goto err_out;
+ ci->blocksizes[1]=1<<bs;
if(vi->rate<1)goto err_out;
if(vi->channels<1)goto err_out;