diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2002-06-09 10:13:56 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2002-06-09 10:13:56 +0000 |
commit | 3ad985f1ebcccfc7081817ce648d89e1da926615 (patch) | |
tree | e0808f8757607143ebedffc9e0402f9c1d713f19 /lib/gnutls_datum.c | |
parent | 27c0d00eb23c5d6c07551d94bfea2766101c909c (diff) | |
download | gnutls-3ad985f1ebcccfc7081817ce648d89e1da926615.tar.gz |
Added gnutls_b64_encode_fmt2() and gnutls_b64_decode_fmt2(). These functions return allocated data. Cleaned up the gnutls_datum code and some of memory stuff.
Diffstat (limited to 'lib/gnutls_datum.c')
-rw-r--r-- | lib/gnutls_datum.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/lib/gnutls_datum.c b/lib/gnutls_datum.c index 4ee896752b..f8e5f38ed7 100644 --- a/lib/gnutls_datum.c +++ b/lib/gnutls_datum.c @@ -46,19 +46,22 @@ void _gnutls_write_datum8( opaque* dest, gnutls_datum dat) { memcpy( &dest[1], dat.data, dat.size); } -int gnutls_set_datum( gnutls_datum* dat, const void* data, int data_size) { - dat->data = gnutls_malloc(data_size); + +int _gnutls_set_datum_m( gnutls_datum* dat, const void* data, int data_size, + ALLOC_FUNC galloc_func) { + dat->data = galloc_func(data_size); if (dat->data==NULL) return GNUTLS_E_MEMORY_ERROR; - + dat->size = data_size; memcpy( dat->data, data, data_size); return 0; } -int gnutls_datum_append( gnutls_datum* dst, const void* data, int data_size) { +int _gnutls_datum_append_m( gnutls_datum* dst, const void* data, int data_size, + REALLOC_FUNC grealloc_func) { - dst->data = gnutls_realloc(dst->data, data_size+dst->size); + dst->data = grealloc_func(dst->data, data_size+dst->size); if (dst->data==NULL) return GNUTLS_E_MEMORY_ERROR; memcpy( &dst->data[dst->size], data, data_size); @@ -67,28 +70,11 @@ int gnutls_datum_append( gnutls_datum* dst, const void* data, int data_size) { return 0; } -int gnutls_sset_datum( gnutls_datum* dat, const void* data, int data_size) { - dat->data = gnutls_secure_malloc(data_size); - if (dat->data==NULL) return GNUTLS_E_MEMORY_ERROR; - - dat->size = data_size; - memcpy( dat->data, data, data_size); - - return 0; -} - -void gnutls_free_datum( gnutls_datum* dat) { +void _gnutls_free_datum_m( gnutls_datum* dat, FREE_FUNC gfree_func) { if (dat->data!=NULL && dat->size!=0) - gnutls_free( dat->data); + gfree_func( dat->data); dat->data = NULL; dat->size = 0; } -void gnutls_sfree_datum( gnutls_datum* dat) { - if (dat->data!=NULL && dat->size!=0) - gnutls_free( dat->data); - - dat->data = NULL; - dat->size = 0; -} |