From acd214041b274c78853b2f72e2f51c5d148bc546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 5 Sep 2006 13:55:38 +0000 Subject: [PATCH] make generated data work git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18011 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/gen_seq.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/asn1/gen_seq.c b/lib/asn1/gen_seq.c index fe028ad59..bc945f474 100644 --- a/lib/asn1/gen_seq.c +++ b/lib/asn1/gen_seq.c @@ -82,7 +82,7 @@ generate_type_seq (const Symbol *s) "void *ptr;\n" "\n" "ptr = realloc(data->val, \n" - "\t(data->len + 1) * sizeof(data->val[0]))\n" + "\t(data->len + 1) * sizeof(data->val[0]));\n" "if (ptr == NULL) return ENOMEM;\n" "data->val = ptr;\n\n" "ret = copy_%s(element, &data->val[data->len]);\n" @@ -99,12 +99,11 @@ generate_type_seq (const Symbol *s) s->gen_name, s->gen_name); fprintf (codefile, - "%s *old;\n" "void *ptr;\n" "\n" - "if (data->len == 0) return ASN1_UNDERRUN;\n" - "if (num >= data->len) return ASN1_OVERRUN;\n" - "free_%s(data->val[element])\n" + "if (data->len == 0 || element >= data->len)\n" + "\treturn ASN1_OVERRUN;\n" + "free_%s(&data->val[element]);\n" "data->len--;\n" "memmove(&data->val[element], &data->val[element + 1], \n" "\tsizeof(data->val[0]) * data->len);\n" @@ -116,4 +115,3 @@ generate_type_seq (const Symbol *s) fprintf (codefile, "}\n\n"); } -