fixed heap-use-after-free in solidgen
[csRadar.git] / csrMem.h
index dbcc942566e3e5420290cf773f80978709f101d3..25913be651236abce298516b4f570cbc5828fb1d 100644 (file)
--- a/csrMem.h
+++ b/csrMem.h
@@ -11,6 +11,14 @@ void *csr_malloc( size_t size )
        return ret;
 }
 
+void *csr_calloc( size_t size )
+{
+       void *ret = calloc( 1, size );
+       if( !ret )
+               exit(1);
+       return ret;
+}
+
 void *csr_sb_raw( void *arr )
 {
        return ((u32 *)arr)-3;
@@ -42,6 +50,7 @@ void csr_sb_inc( void *arr, u32 amt )
        raw[1] += amt;
 }
 
+__attribute__((warn_unused_result))
 void *csr_sb_reserve( void *arr, u32 amt, u32 esize )
 {
        u32 cap = arr? csr_sb_cap( arr ): 0;
@@ -75,6 +84,14 @@ void csr_sb_free( void *arr )
        }
 }
 
+void csr_sb_clear( void *arr )
+{
+       if( arr )
+       {
+               ((u32 *)csr_sb_raw( arr ))[1] = 0;
+       }
+}
+
 // djb2 - Dan Bernstein
 unsigned long djb2( unsigned char const *str )
 {