[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v17 07/20] asn1_test: test module for libtasn1
From: |
Gary Lin |
Subject: |
Re: [PATCH v17 07/20] asn1_test: test module for libtasn1 |
Date: |
Tue, 18 Jun 2024 15:00:00 +0800 |
On Mon, Jun 17, 2024 at 05:55:57PM +0200, Daniel Kiper wrote:
> On Fri, Jun 14, 2024 at 02:45:40PM +0800, Gary Lin wrote:
> > From: Daniel Axtens <dja@axtens.net>
> >
> > Import tests from libtasn1 that don't use functionality we don't
> > import. This test module is integrated into functional_test so that the
> > user can run the test in grub shell.
> >
> > This doesn't test the full decoder but that will be exercised in
> > test suites for coming patch sets.
> >
> > Add testcase target in accordance with
> > 5e10be48e5 tests: Add check-native and check-nonnative make targets
> >
> > Cc: Vladimir Serbinenko <phcoder@gmail.com>
> > Signed-off-by: Daniel Axtens <dja@axtens.net>
> > Signed-off-by: Gary Lin <glin@suse.com>
> > ---
> > Makefile.util.def | 6 +
> > grub-core/Makefile.core.def | 14 ++
> > .../tests/asn1/CVE-2018-1000654-1_asn1_tab.h | 32 +++
> > .../tests/asn1/CVE-2018-1000654-2_asn1_tab.h | 36 +++
> > grub-core/tests/asn1/CVE-2018-1000654.c | 58 +++++
> > grub-core/tests/asn1/Test_overflow.c | 134 ++++++++++++
> > grub-core/tests/asn1/Test_simple.c | 205 ++++++++++++++++++
> > grub-core/tests/asn1/Test_strings.c | 142 ++++++++++++
> > grub-core/tests/asn1/asn1_test.c | 49 +++++
> > grub-core/tests/asn1/asn1_test.h | 44 ++++
> > grub-core/tests/asn1/object-id-decoding.c | 109 ++++++++++
> > grub-core/tests/asn1/object-id-encoding.c | 114 ++++++++++
> > grub-core/tests/asn1/octet-string.c | 199 +++++++++++++++++
> > grub-core/tests/asn1/reproducers.c | 80 +++++++
> > grub-core/tests/lib/functional_test.c | 1 +
> > tests/asn1_test.in | 11 +
>
> If most of these files come from libtasn1 then you should add a list of
> commands which allows us recreate them from libtasn1 source. And probably
> introduction of original libtasn1 test files should happen in the patch #2.
>
Ok, I'll import those files in patch #2 and add a follow-up patch for
the grub compatibility.
Gary Lin
> [...]
>
> > diff --git a/grub-core/tests/asn1/Test_overflow.c
> > b/grub-core/tests/asn1/Test_overflow.c
> > new file mode 100644
> > index 000000000..aff6b410a
> > --- /dev/null
> > +++ b/grub-core/tests/asn1/Test_overflow.c
> > @@ -0,0 +1,134 @@
> > +/*
> > + * Copyright (C) 2012-2014 Free Software Foundation, Inc.
> > + *
> > + * This file is part of LIBTASN1.
> > + *
> > + * This program is free software: you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation, either version 3 of the License, or
> > + * (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program. If not, see <http://www.gnu.org/licenses/>.
> > + *
> > + */
> > +
> > +/* Written by Simon Josefsson */
> > +
> > +#include "asn1_test.h"
> > +
> > +int
> > +test_overflow(void)
> > +{
> > + /* Test that values larger than long are rejected. This has worked
> > + fine with all versions of libtasn1. */
> > +
> > + {
> > + unsigned char der[] = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF";
> > + long l;
> > + int len;
> > +
> > + l = asn1_get_length_der (der, sizeof der, &len);
> > +
> > + if (l != -2L)
> > + {
> > + grub_printf ("ERROR: asn1_get_length_der bignum (l %ld len %d)\n", l,
> > len);
> > + return 1;
> > + }
> > + }
> > +
> > + /* Test that values larger than int but smaller than long are
> > + rejected. This limitation was introduced with libtasn1 2.12. */
> > +#if (GRUB_LONG_MAX > GRUB_INT_MAX)
>
> This change suggests it is a mixture of libtasn1 source and GRUB specific
> patches. Please disaggregate them.
>
> Daniel
- [PATCH v17 05/20] libtasn1: fix the potential buffer overrun, (continued)
- [PATCH v17 05/20] libtasn1: fix the potential buffer overrun, Gary Lin, 2024/06/14
- [PATCH v17 06/20] libtasn1: compile into asn1 module, Gary Lin, 2024/06/14
- [PATCH v17 04/20] libtasn1: changes for grub compatibility, Gary Lin, 2024/06/14
- [PATCH v17 07/20] asn1_test: test module for libtasn1, Gary Lin, 2024/06/14
- [PATCH v17 08/20] libtasn1: Add the documentation, Gary Lin, 2024/06/14
- [PATCH v17 09/20] key_protector: Add key protectors framework, Gary Lin, 2024/06/14
- [PATCH v17 10/20] tpm2: Add TPM Software Stack (TSS), Gary Lin, 2024/06/14