From 8c03752be76bed216b93f0be34e4caeacac91dfe Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 3 Jul 1999 02:28:55 +0000 Subject: [PATCH] (decode_type): fix generation of decoding information for TSequenceOf. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6393 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/gen_decode.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/asn1/gen_decode.c b/lib/asn1/gen_decode.c index 266cfc45e..14639f2d5 100644 --- a/lib/asn1/gen_decode.c +++ b/lib/asn1/gen_decode.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 1999 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -213,15 +213,22 @@ decode_type (char *name, Type *t) "len = reallen;\n"); fprintf (codefile, + "{\n" + "size_t origlen = len;\n" + "int oldret = ret;\n" + "ret = 0;\n" "(%s)->len = 0;\n" "(%s)->val = NULL;\n" - "while(len > 0) {\n" + "while(ret < origlen) {\n" "(%s)->len++;\n" "(%s)->val = realloc((%s)->val, sizeof(*((%s)->val)) * (%s)->len);\n", name, name, name, name, name, name, name); asprintf (&n, "&(%s)->val[(%s)->len-1]", name, name); decode_type (n, t->subtype); fprintf (codefile, + "len = origlen - ret;\n" + "}\n" + "ret += oldret;\n" "}\n"); free (n); break;