summaryrefslogtreecommitdiff
path: root/lib/gnutls_datum.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2002-06-09 10:13:56 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2002-06-09 10:13:56 +0000
commit3ad985f1ebcccfc7081817ce648d89e1da926615 (patch)
treee0808f8757607143ebedffc9e0402f9c1d713f19 /lib/gnutls_datum.c
parent27c0d00eb23c5d6c07551d94bfea2766101c909c (diff)
downloadgnutls-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.c34
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;
-}