From 38f28b040157ff5bffcd41e557205224f6bb0e9c Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Mon, 19 Jun 1995 12:37:28 +0000 Subject: [PATCH] Fixed a bug in the compspec. --- asn/proto.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/asn/proto.c b/asn/proto.c index 2cd5d94..5c87b25 100644 --- a/asn/proto.c +++ b/asn/proto.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: proto.c,v $ - * Revision 1.31 1995-06-16 13:15:56 quinn + * Revision 1.32 1995-06-19 12:37:28 quinn + * Fixed a bug in the compspec. + * + * Revision 1.31 1995/06/16 13:15:56 quinn * Fixed Defaultdiagformat. * * Revision 1.30 1995/06/15 15:42:01 quinn @@ -105,6 +108,16 @@ /* ---------------------- GLOBAL DEFS ------------------- */ +/* + * We'll use a general octetstring here, since string operations are + * clumsy on long strings. + */ +int z_SUTRS(ODR o, Odr_oct **p, int opt) +{ + return odr_implicit(o, odr_octetstring, p, ODR_UNIVERSAL, + ODR_GENERALSTRING, opt); +} + int z_ReferenceId(ODR o, Z_ReferenceId **p, int opt) { return odr_implicit(o, odr_octetstring, (Odr_oct**) p, ODR_CONTEXT, 2, opt); @@ -443,14 +456,12 @@ int z_ElementSetNames(ODR o, Z_ElementSetNames **p, int opt) {-1, -1, -1, -1, 0} }; - if (!odr_constructed_begin(o, p, ODR_CONTEXT, 19)) - return opt && odr_ok(o); - if (o->direction == ODR_DECODE) *p = odr_malloc(o, sizeof(**p)); + else + return opt && odr_ok(o); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which) && - odr_constructed_end(o)) + if (odr_choice(o, arm, &(*p)->u, &(*p)->which)) return 1; *p = 0; return 0; @@ -1212,7 +1223,7 @@ int z_RecordComposition(ODR o, Z_RecordComposition **p, int opt) { static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_RecordComp_simple, + {ODR_EXPLICIT, ODR_CONTEXT, 19, Z_RecordComp_simple, z_ElementSetNames}, {ODR_IMPLICIT, ODR_CONTEXT, 209, Z_RecordComp_complex, z_CompSpec}, @@ -1262,7 +1273,8 @@ int z_PresentRequest(ODR o, Z_PresentRequest **p, int opt) &(*p)->num_ranges) || odr_ok(o)) && z_RecordComposition(o, &(*p)->recordComposition, 1) && #else - z_ElementSetNames(o, &pp->elementSetNames, 1) && + odr_explicit(o, z_ElementSetNames, &pp->elementSetNames, ODR_CONTEXT, + 19, 1) && #endif odr_implicit(o, odr_oid, &(*p)->preferredRecordSyntax, ODR_CONTEXT, 104, 1) && -- 1.7.10.4