From 2ddd3083ade11f562b3b548d35060cd8899649cb Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Mon, 16 Oct 2006 12:32:14 +0000 Subject: allowing null buffer --- skeletons/OCTET_STRING.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'skeletons/OCTET_STRING.c') diff --git a/skeletons/OCTET_STRING.c b/skeletons/OCTET_STRING.c index a9747c4d..52c3d3e4 100644 --- a/skeletons/OCTET_STRING.c +++ b/skeletons/OCTET_STRING.c @@ -595,7 +595,7 @@ OCTET_STRING_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, uint8_t *end; size_t i; - if(!st || !st->buf) + if(!st || (!st->buf && st->size)) _ASN_ENCODE_FAILED; er.encoded = 0; @@ -751,7 +751,7 @@ OCTET_STRING_encode_xer_utf8(asn_TYPE_descriptor_t *td, void *sptr, (void)ilevel; /* Unused argument */ (void)flags; /* Unused argument */ - if(!st || !st->buf) + if(!st || (!st->buf && st->size)) _ASN_ENCODE_FAILED; buf = st->buf; @@ -1433,7 +1433,7 @@ OCTET_STRING_encode_uper(asn_TYPE_descriptor_t *td, int squeeze = 0; int ret; - if(!st || !st->buf) + if(!st || (!st->buf && st->size)) _ASN_ENCODE_FAILED; if(unit_bits == 1) { @@ -1544,7 +1544,8 @@ OCTET_STRING_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, (void)td; /* Unused argument */ - if(!st || !st->buf) return (cb("", 8, app_key) < 0) ? -1 : 0; + if(!st || (!st->buf && st->size)) + return (cb("", 8, app_key) < 0) ? -1 : 0; /* * Dump the contents of the buffer in hexadecimal. @@ -1580,7 +1581,7 @@ OCTET_STRING_print_utf8(asn_TYPE_descriptor_t *td, const void *sptr, (void)td; /* Unused argument */ (void)ilevel; /* Unused argument */ - if(st && st->buf) { + if(st && (st->buf || !st->size)) { return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; } else { return (cb("", 8, app_key) < 0) ? -1 : 0; @@ -1604,6 +1605,7 @@ OCTET_STRING_free(asn_TYPE_descriptor_t *td, void *sptr, int contents_only) { if(st->buf) { FREEMEM(st->buf); + st->buf = 0; } /* -- cgit v1.2.3