[PATCH 7/8] mbuffers: Add _mbuffer_xfree operation.
Jonathan Bastien-Filiatrault
joe at x2a.org
Thu Sep 9 00:34:46 CEST 2010
Signed-off-by: Jonathan Bastien-Filiatrault <joe at x2a.org>
diff --git a/lib/gnutls_mbuffers.h b/lib/gnutls_mbuffers.h
index 8f08a96..beb1eab 100644
--- a/lib/gnutls_mbuffers.h
+++ b/lib/gnutls_mbuffers.h
@@ -25,7 +25,8 @@
#ifndef GNUTLS_MBUFFERS_H
# define GNUTLS_MBUFFERS_H
-#include "gnutls_int.h"
+#include <gnutls_int.h>
+#include <gnutls_errors.h>
void _mbuffer_init (mbuffer_head_st *buf);
void _mbuffer_clear (mbuffer_head_st *buf);
@@ -95,4 +96,18 @@ inline static mbuffer_st* _gnutls_handshake_alloc(size_t size, size_t maximum)
return ret;
}
+/* Free a segment, if the pointer is not NULL
+ *
+ * We take a ** to detect and fix double free bugs (the dangling
+ * pointer case). It also makes sure the pointer has a known value
+ * after freeing.
+ */
+inline static void _mbuffer_xfree(mbuffer_st **bufel)
+{
+ if(*bufel)
+ gnutls_free(*bufel);
+
+ *bufel = NULL;
+}
+
#endif
--
1.7.1
More information about the Gnutls-devel
mailing list