summaryrefslogtreecommitdiff
path: root/include/freetype/internal/ftmemory.h
diff options
context:
space:
mode:
authorDavid Turner <david@freetype.org>2005-03-15 23:31:48 +0000
committerDavid Turner <david@freetype.org>2005-03-15 23:31:48 +0000
commit58609c40c8406a7ddc524f61affcdab16c55472d (patch)
tree9acffa0caa0b7e63decda2b0a6c4120266a1f7bc /include/freetype/internal/ftmemory.h
parent68df4f732d29033b745272708d4c99ddb16ce373 (diff)
downloadfreetype2-58609c40c8406a7ddc524f61affcdab16c55472d.tar.gz
* docs/CHANGES: updating
* src/type1/t1parse.c (T1_New_Parser), src/type42/t42parse.c (t42_parser_init): modifying functions to check the font header before allocating anything on the heap. * internal/freetype/ftmemory.h: introducing the new macros FT_ARRAY_MAX and FT_ARRAY_CHECK * src/pcf/pcfread.c, src/pcf/pcfutil.c: minor fixes and simplifications. try to protect the PCF driver from doing stupid things with broken fonts.
Diffstat (limited to 'include/freetype/internal/ftmemory.h')
-rw-r--r--include/freetype/internal/ftmemory.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/freetype/internal/ftmemory.h b/include/freetype/internal/ftmemory.h
index ddd0cca15..70e3a3f17 100644
--- a/include/freetype/internal/ftmemory.h
+++ b/include/freetype/internal/ftmemory.h
@@ -270,6 +270,13 @@ FT_BEGIN_HEADER
#define FT_ARRAY_MOVE( dest, source, count ) \
FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) )
+/* return the maximum number of adressable elements in an array
+ * we limit ourselves to INT_MAX, rather than UINT_MAX, to avoid
+ * any problems
+ */
+#define FT_ARRAY_MAX( ptr ) (FT_INT_MAX/sizeof( *(ptr) ))
+
+#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX(ptr) )
/*************************************************************************/
/* */
@@ -413,6 +420,7 @@ FT_BEGIN_HEADER
FT_REALLOC( _pointer, (_old_) * sizeof ( _type_ ), \
(_new_) * sizeof ( _type_ ) )
+
/* */