summaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'asn1')
-rw-r--r--asn1/asn1c/OCTET_STRING.c13
-rw-r--r--asn1/asn1c/constr_CHOICE.c1
-rw-r--r--asn1/asn1c/der_encoder.c4
-rw-r--r--asn1/asn1c/per_support.c4
4 files changed, 6 insertions, 16 deletions
diff --git a/asn1/asn1c/OCTET_STRING.c b/asn1/asn1c/OCTET_STRING.c
index f2eec13aa..17bfa8e97 100644
--- a/asn1/asn1c/OCTET_STRING.c
+++ b/asn1/asn1c/OCTET_STRING.c
@@ -244,8 +244,8 @@ OCTET_STRING_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
ber_tlv_tag_t expected_tag;
ssize_t tl, ll, tlvl;
/* This one works even if (sel->left == -1) */
- ssize_t Left = ((!sel||(size_t)sel->left >= size)
- ?(ssize_t)size:sel->left);
+ size_t Left = ((!sel||(size_t)sel->left >= size)
+ ?size:(size_t)sel->left);
ASN_DEBUG("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", sel,
@@ -483,15 +483,6 @@ OCTET_STRING_decode_ber(asn_codec_ctx_t *opt_codec_ctx,
break;
}
- if(sel) {
- ASN_DEBUG("3sel p=%p, wn=%d, l=%ld, g=%ld, size=%ld",
- sel->prev, sel->want_nulls,
- (long)sel->left, (long)sel->got, (long)size);
- if(sel->prev || sel->want_nulls > 1 || sel->left > 0) {
- RETURN(RC_WMORE);
- }
- }
-
/*
* BIT STRING-specific processing.
*/
diff --git a/asn1/asn1c/constr_CHOICE.c b/asn1/asn1c/constr_CHOICE.c
index 5a1e0d386..7c1b155ff 100644
--- a/asn1/asn1c/constr_CHOICE.c
+++ b/asn1/asn1c/constr_CHOICE.c
@@ -670,7 +670,6 @@ CHOICE_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
case -1:
ctx->phase = 5;
RETURN(RC_FAIL);
- continue;
case 1:
ctx->phase = 3;
/* Fall through */
diff --git a/asn1/asn1c/der_encoder.c b/asn1/asn1c/der_encoder.c
index 6c859e1b0..817dd6863 100644
--- a/asn1/asn1c/der_encoder.c
+++ b/asn1/asn1c/der_encoder.c
@@ -144,8 +144,8 @@ der_write_tags(asn_TYPE_descriptor_t *sd,
if(!cb) return overall_length - struct_length;
- ASN_DEBUG("%s %s TL sequence (%d elements)",
- cb?"Encoding":"Estimating", sd->name, tags_count);
+ ASN_DEBUG("Encoding %s TL sequence (%d elements)", sd->name,
+ tags_count);
/*
* Encode the TL sequence for real.
diff --git a/asn1/asn1c/per_support.c b/asn1/asn1c/per_support.c
index 0d089f495..47f07bfb0 100644
--- a/asn1/asn1c/per_support.c
+++ b/asn1/asn1c/per_support.c
@@ -394,8 +394,8 @@ per_put_few_bits(asn_per_outp_t *po, uint32_t bits, int obits) {
buf[2] = bits >> 8,
buf[3] = bits;
else {
- per_put_few_bits(po, bits >> (obits - 24), 24);
- per_put_few_bits(po, bits, obits - 24);
+ if(per_put_few_bits(po, bits >> (obits - 24), 24)) return -1;
+ if(per_put_few_bits(po, bits, obits - 24)) return -1;
}
ASN_DEBUG("[PER out %u/%x => %02x buf+%ld]",