x86: Don't make 2 calls to dlerror () in a row
Commit Message
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.
Comments
* 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" <hjl.tools@gmail.com>
> 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
On Fri, Jan 17, 2020 at 1:53 PM Florian Weimer <fweimer@redhat.com> 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" <hjl.tools@gmail.com>
> > 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.
From 7fe7a18b7bed14bc2da616281d72b2bdbe26b41c Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
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(-)
@@ -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);
}
@@ -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);
}
--
2.24.1