grub-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]