diff options
author | Arne Schwabe <arne@rfc2549.org> | 2013-11-21 21:46:53 +0100 |
---|---|---|
committer | Arne Schwabe <arne@rfc2549.org> | 2013-11-21 21:46:53 +0100 |
commit | 0163093730b49291cd4c6353cee05f4ca780e948 (patch) | |
tree | e3b62ce803cab33eb738bdeda2be14e668955b5b /openvpn/src/openvpn/buffer.c | |
parent | 1eedf7186d1667f06c4d21c0a84a05bd693a8e15 (diff) |
Update openvpn source code
Diffstat (limited to 'openvpn/src/openvpn/buffer.c')
-rw-r--r-- | openvpn/src/openvpn/buffer.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/openvpn/src/openvpn/buffer.c b/openvpn/src/openvpn/buffer.c index 56d14b1a..fb3b52d1 100644 --- a/openvpn/src/openvpn/buffer.c +++ b/openvpn/src/openvpn/buffer.c @@ -327,19 +327,28 @@ gc_malloc (size_t size, bool clear, struct gc_arena *a) #endif { void *ret; - struct gc_entry *e; - ASSERT (NULL != a); - + if (a) + { + struct gc_entry *e; #ifdef DMALLOC - e = (struct gc_entry *) openvpn_dmalloc (file, line, size + sizeof (struct gc_entry)); + e = (struct gc_entry *) openvpn_dmalloc (file, line, size + sizeof (struct gc_entry)); #else - e = (struct gc_entry *) malloc (size + sizeof (struct gc_entry)); + e = (struct gc_entry *) malloc (size + sizeof (struct gc_entry)); #endif - check_malloc_return (e); - ret = (char *) e + sizeof (struct gc_entry); - e->next = a->list; - a->list = e; - + check_malloc_return (e); + ret = (char *) e + sizeof (struct gc_entry); + e->next = a->list; + a->list = e; + } + else + { +#ifdef DMALLOC + ret = openvpn_dmalloc (file, line, size); +#else + ret = malloc (size); +#endif + check_malloc_return (ret); + } #ifndef ZERO_BUFFER_ON_ALLOC if (clear) #endif |