Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37039489
en ru br
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


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;
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin