[PATCH] x86: Don't make 2 calls to dlerror () in a row

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] x86: Don't make 2 calls to dlerror () in a row

H.J. Lu-30
We shouldn't make 2 calls to dlerror () in a row since the first call
will clear the error.  We should just use the return value from the
first call.

Tested on Linux/x86-64.

--
H.J.

0001-x86-Don-t-make-2-calls-to-dlerror-in-a-row.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] x86: Don't make 2 calls to dlerror () in a row

Florian Weimer-5
* H. J. Lu:

> We shouldn't make 2 calls to dlerror () in a row since the first call
> will clear the error.  We should just use the return value from the
> first call.
>
> Tested on Linux/x86-64.
>
> --
> H.J.
>
> From 7fe7a18b7bed14bc2da616281d72b2bdbe26b41c Mon Sep 17 00:00:00 2001
> From: "H.J. Lu" <[hidden email]>
> Date: Fri, 17 Jan 2020 10:13:43 -0800
> Subject: [PATCH] x86: Don't make 2 calls to dlerror () in a row
>
> We shouldn't make 2 calls to dlerror () in a row since the first call
> will clear the error.  We should just use the return value from the
> first call.
>
> Tested on Linux/x86-64.
> ---
>  sysdeps/x86/tst-cet-legacy-5.c | 2 +-
>  sysdeps/x86/tst-cet-legacy-6.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/tst-cet-legacy-5.c b/sysdeps/x86/tst-cet-legacy-5.c
> index b97e03d634..6c9bba06f5 100644
> --- a/sysdeps/x86/tst-cet-legacy-5.c
> +++ b/sysdeps/x86/tst-cet-legacy-5.c
> @@ -38,7 +38,7 @@ do_test_1 (const char *modname, bool fail)
>    if (strstr (err, "shadow stack isn't enabled") == NULL)
>      {
>        printf ("incorrect dlopen '%s' error: %s\n", modname,
> -      dlerror ());
> +      err);
>        exit (1);
>      }
>  
> diff --git a/sysdeps/x86/tst-cet-legacy-6.c b/sysdeps/x86/tst-cet-legacy-6.c
> index 3c4a47f2db..877e77747d 100644
> --- a/sysdeps/x86/tst-cet-legacy-6.c
> +++ b/sysdeps/x86/tst-cet-legacy-6.c
> @@ -38,7 +38,7 @@ do_test_1 (const char *modname, bool fail)
>    if (strstr (err, "shadow stack isn't enabled") == NULL)
>      {
>        printf ("incorrect dlopen '%s' error: %s\n", modname,
> -      dlerror ());
> +      err);
>        exit (1);
>      }

You could FAIL_EXIT1 for this.  But the change looks good to me as is.

Thanks,
Florian

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] x86: Don't make 2 calls to dlerror () in a row

H.J. Lu-30
On Fri, Jan 17, 2020 at 1:53 PM Florian Weimer <[hidden email]> wrote:

>
> * H. J. Lu:
>
> > We shouldn't make 2 calls to dlerror () in a row since the first call
> > will clear the error.  We should just use the return value from the
> > first call.
> >
> > Tested on Linux/x86-64.
> >
> > --
> > H.J.
> >
> > From 7fe7a18b7bed14bc2da616281d72b2bdbe26b41c Mon Sep 17 00:00:00 2001
> > From: "H.J. Lu" <[hidden email]>
> > Date: Fri, 17 Jan 2020 10:13:43 -0800
> > Subject: [PATCH] x86: Don't make 2 calls to dlerror () in a row
> >
> > We shouldn't make 2 calls to dlerror () in a row since the first call
> > will clear the error.  We should just use the return value from the
> > first call.
> >
> > Tested on Linux/x86-64.
> > ---
> >  sysdeps/x86/tst-cet-legacy-5.c | 2 +-
> >  sysdeps/x86/tst-cet-legacy-6.c | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/sysdeps/x86/tst-cet-legacy-5.c b/sysdeps/x86/tst-cet-legacy-5.c
> > index b97e03d634..6c9bba06f5 100644
> > --- a/sysdeps/x86/tst-cet-legacy-5.c
> > +++ b/sysdeps/x86/tst-cet-legacy-5.c
> > @@ -38,7 +38,7 @@ do_test_1 (const char *modname, bool fail)
> >         if (strstr (err, "shadow stack isn't enabled") == NULL)
> >           {
> >             printf ("incorrect dlopen '%s' error: %s\n", modname,
> > -                   dlerror ());
> > +                   err);
> >             exit (1);
> >           }
> >
> > diff --git a/sysdeps/x86/tst-cet-legacy-6.c b/sysdeps/x86/tst-cet-legacy-6.c
> > index 3c4a47f2db..877e77747d 100644
> > --- a/sysdeps/x86/tst-cet-legacy-6.c
> > +++ b/sysdeps/x86/tst-cet-legacy-6.c
> > @@ -38,7 +38,7 @@ do_test_1 (const char *modname, bool fail)
> >         if (strstr (err, "shadow stack isn't enabled") == NULL)
> >           {
> >             printf ("incorrect dlopen '%s' error: %s\n", modname,
> > -                   dlerror ());
> > +                   err);
> >             exit (1);
> >           }
>
> You could FAIL_EXIT1 for this.  But the change looks good to me as is.
>

I am checking my patch in as is.

Thanks.

--
H.J.