view tremor/tremor.diff @ 26133:94cc4bac8cd0

Turn ancient V offset numerical constants into named ones. Add a check that checks that the width is within the chosen constant. This might have been exploitable.
author michael
date Wed, 05 Mar 2008 03:00:25 +0000
parents fe50eaad932d
children e61b6352f32f
line wrap: on
line source

--- misc.h	2005-01-04 16:29:01.000000000 +0100
+++ misc.h	2004-12-30 13:09:20.000000000 +0100
@@ -29,8 +29,9 @@
 /* 64 bit multiply */
 
 #include <sys/types.h>
+#include "config.h"
 
-#if BYTE_ORDER==LITTLE_ENDIAN
+#ifndef WORDS_BIGENDIAN
 union magic {
   struct {
     ogg_int32_t lo;
@@ -38,9 +39,7 @@
   } halves;
   ogg_int64_t whole;
 };
-#endif 
-
-#if BYTE_ORDER==BIG_ENDIAN
+#else
 union magic {
   struct {
     ogg_int32_t hi;
--- os_types.h	2005-01-04 16:29:02.000000000 +0100
+++ os_types.h	2005-01-05 10:39:07.000000000 +0100
@@ -32,57 +32,11 @@
 #define _ogg_realloc realloc
 #define _ogg_free    free
 
-#ifdef _WIN32 
-
-#  ifndef __GNUC__
-   /* MSVC/Borland */
-   typedef __int64 ogg_int64_t;
-   typedef __int32 ogg_int32_t;
-   typedef unsigned __int32 ogg_uint32_t;
-   typedef __int16 ogg_int16_t;
-#  else
-   /* Cygwin */
-   #include <_G_config.h>
-   typedef _G_int64_t ogg_int64_t;
-   typedef _G_int32_t ogg_int32_t;
-   typedef _G_uint32_t ogg_uint32_t;
-   typedef _G_int16_t ogg_int16_t;
-#  endif
-
-#elif defined(__MACOS__)
-
-#  include <sys/types.h>
-   typedef SInt16 ogg_int16_t;
-   typedef SInt32 ogg_int32_t;
-   typedef UInt32 ogg_uint32_t;
-   typedef SInt64 ogg_int64_t;
-
-#elif defined(__MACOSX__) /* MacOS X Framework build */
-
-#  include <sys/types.h>
-   typedef int16_t ogg_int16_t;
-   typedef int32_t ogg_int32_t;
-   typedef u_int32_t ogg_uint32_t;
+   #include <inttypes.h>
    typedef int64_t ogg_int64_t;
-
-#elif defined(__BEOS__)
-
-   /* Be */
-#  include <inttypes.h>
-
-#elif defined (__EMX__)
-
-   /* OS/2 GCC */
-   typedef short ogg_int16_t;
-   typedef int ogg_int32_t;
-   typedef unsigned int ogg_uint32_t;
-   typedef long long ogg_int64_t;
-
-#else
-
-#  include <sys/types.h>
-#  include "config_types.h"
-
-#endif
+   typedef int32_t ogg_int32_t;
+   typedef uint32_t ogg_uint32_t;
+   typedef uint16_t ogg_uint16_t;
+   typedef int16_t ogg_int16_t;
 
 #endif  /* _OS_TYPES_H */
--- sharedbook.c	30 Dec 2004 12:09:20 -0000	1.1
+++ sharedbook.c	18 Aug 2005 16:13:54 -0000
@@ -208,7 +211,7 @@
 	  int indexdiv=1;
 	  for(k=0;k<b->dim;k++){
 	    int index= (j/indexdiv)%quantvals;
-	    int point;
+	    ogg_int32_t point;
 	    int val=VFLOAT_MULTI(delta,delpoint,
 				 abs(b->quantlist[index]),&point);
 
@@ -242,7 +245,7 @@
 	  int         lastpoint=0;
 
 	  for(k=0;k<b->dim;k++){
-	    int point;
+	    ogg_int32_t point;
 	    int val=VFLOAT_MULTI(delta,delpoint,
 				 abs(b->quantlist[j*b->dim+k]),&point);
 
--- block.h	(revision 0)
+++ block.h	(revision 0)
@@ -0,0 +1,24 @@
+/********************************************************************
+ *                                                                  *
+ * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
+ *                                                                  *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
+ *                                                                  *
+ * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
+ * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
+ *                                                                  *
+ ********************************************************************
+
+ function: basic shared block operations
+
+ ********************************************************************/
+
+#ifndef _V_BLOCK_H_
+#define _V_BLOCK_H_
+
+void *_vorbis_block_alloc(vorbis_block *vb,long bytes);
+void _vorbis_block_ripcord(vorbis_block *vb);
+
+#endif
--- floor0.c	(revision 24821)
+++ floor0.c	(working copy)
@@ -25,6 +25,7 @@
 #include "codebook.h"
 #include "misc.h"
 #include "os.h"
+#include "block.h"
 
 #define LSP_FRACBITS 14
 
--- floor1.c	(revision 24821)
+++ floor1.c	(working copy)
@@ -24,6 +24,7 @@
 #include "registry.h"
 #include "codebook.h"
 #include "misc.h"
+#include "block.h"
 
 #define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */
 
--- synthesis.c	(revision 24821)
+++ synthesis.c	(working copy)
@@ -23,6 +23,7 @@
 #include "registry.h"
 #include "misc.h"
 #include "os.h"
+#include "block.h"
 
 int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){
   vorbis_dsp_state     *vd=vb->vd;
--- res012.c	(revision 24821)
+++ res012.c	(working copy)
@@ -25,6 +25,7 @@
 #include "codebook.h"
 #include "misc.h"
 #include "os.h"
+#include "block.h"
 
 typedef struct {
   vorbis_info_residue0 *info;
--- block.c	(revision 24821)
+++ block.c	(working copy)
@@ -25,6 +25,7 @@
 #include "window.h"
 #include "registry.h"
 #include "misc.h"
+#include "block.h"
 
 static int ilog(unsigned int v){
   int ret=0;
--- os.h	(revision 25873)
+++ os.h	(working copy)
@@ -20,18 +20,8 @@
 #include <math.h>
 #include "os_types.h"
 
-#ifndef _V_IFDEFJAIL_H_
-#  define _V_IFDEFJAIL_H_
+#define STIN static inline
 
-#  ifdef __GNUC__
-#    define STIN static __inline__
-#  elif _WIN32
-#    define STIN static __inline
-#  endif
-#else
-#  define STIN static
-#endif
-
 #ifndef M_PI
 #  define M_PI (3.1415926536f)
 #endif