From d9e1a55133a7d005a5bb83dbe7f9a2d3a8cc5bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 27 Jun 2007 07:37:01 +0000 Subject: [PATCH] Move zero length integercheck to a better place. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21354 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/check-der.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/asn1/check-der.c b/lib/asn1/check-der.c index 6424cb54a..e96b34806 100644 --- a/lib/asn1/check-der.c +++ b/lib/asn1/check-der.c @@ -481,6 +481,8 @@ test_heim_integer (void) }; int i, ret; int ntests = sizeof(tests) / sizeof(tests[0]); + size_t size; + heim_integer i2; for (i = 0; i < ntests; ++i) { tests[i].val = &values[i]; @@ -497,7 +499,18 @@ test_heim_integer (void) test_cmp_heim_integer); for (i = 0; i < ntests; ++i) free (tests[i].name); - return ret; + if (ret) + return ret; + + /* test zero length integer (BER format) */ + ret = der_get_heim_integer(NULL, 0, &i2, &size); + if (ret) + errx(1, "der_get_heim_integer"); + if (i2.length != 0) + errx(1, "der_get_heim_integer wrong length"); + der_free_heim_integer(&i2); + + return 0; } static int @@ -655,7 +668,6 @@ static int check_heim_integer_same(const char *p, const char *norm_p, heim_integer *i) { heim_integer i2; - size_t size; char *str; int ret; @@ -685,12 +697,6 @@ check_heim_integer_same(const char *p, const char *norm_p, heim_integer *i) der_free_heim_integer(&i2); - /* test zero length integer (BER format) */ - ret = der_get_heim_integer(NULL, 0, &i2, &size); - if (ret) - errx(1, "der_get_heim_integer"); - der_free_heim_integer(&i2); - return 0; }