From 4f8ba5ad6ac9b7153b0e13654e59f47e67b3f608 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 13 Nov 2009 10:51:14 +1100 Subject: s4:heimdal: import lorikeet-heimdal-200911122202 (commit 9291fd2d101f3eecec550178634faa94ead3e9a1) --- source4/heimdal/lib/asn1/gen_decode.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'source4/heimdal/lib/asn1/gen_decode.c') diff --git a/source4/heimdal/lib/asn1/gen_decode.c b/source4/heimdal/lib/asn1/gen_decode.c index cf7f0b05dc..327de4c98c 100644 --- a/source4/heimdal/lib/asn1/gen_decode.c +++ b/source4/heimdal/lib/asn1/gen_decode.c @@ -67,6 +67,7 @@ is_primitive_type(int type) case TEnumerated: case TGeneralizedTime: case TGeneralString: + case TTeletexString: case TOID: case TUTCTime: case TUTF8String: @@ -109,6 +110,11 @@ find_tag (const Type *t, *ty = PRIM; *tag = UT_GeneralString; break; + case TTeletexString: + *cl = ASN1_C_UNIV; + *ty = PRIM; + *tag = UT_TeletexString; + break; case TGeneralizedTime: *cl = ASN1_C_UNIV; *ty = PRIM; @@ -489,6 +495,9 @@ decode_type (const char *name, const Type *t, int optional, case TGeneralString: decode_primitive ("general_string", name, forwstr); break; + case TTeletexString: + decode_primitive ("general_string", name, forwstr); + break; case TTag:{ char *tname, *typestring; char *ide = NULL; @@ -621,7 +630,7 @@ decode_type (const char *name, const Type *t, int optional, fprintf(codefile, "else {\n" "(%s)->u.%s.data = calloc(1, len);\n" - "if ((%s)->u.%s.data == NULL) {\n" + "if ((%s)->u.%s.data == NULL && len != 0) {\n" "e = ENOMEM; %s;\n" "}\n" "(%s)->u.%s.length = len;\n" @@ -703,6 +712,7 @@ generate_type_decode (const Symbol *s) case TOID: case TGeneralizedTime: case TGeneralString: + case TTeletexString: case TUTF8String: case TPrintableString: case TIA5String: @@ -734,7 +744,7 @@ generate_type_decode (const Symbol *s) if (preserve) fprintf (codefile, "data->_save.data = calloc(1, ret);\n" - "if (data->_save.data == NULL) { \n" + "if (data->_save.data == NULL && ret != 0) { \n" "e = ENOMEM; goto fail; \n" "}\n" "data->_save.length = ret;\n" -- cgit