[v2,1/2] ldconfig: Move endswithn into a new header file
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
is_gdb_python_file is doing a similar test, so it can use this helper
function as well.
Signed-off-by: Adam Sampson <ats@offog.org>
---
elf/endswith.h | 33 +++++++++++++++++++++++++++++++++
elf/ldconfig.c | 12 +-----------
elf/readlib.c | 3 ++-
3 files changed, 36 insertions(+), 12 deletions(-)
create mode 100644 elf/endswith.h
Comments
On 06/05/24 14:16, Adam Sampson wrote:
> is_gdb_python_file is doing a similar test, so it can use this helper
> function as well.
>
> Signed-off-by: Adam Sampson <ats@offog.org>
LGTM, thanks. Andreas will need to ack this for 2.40.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> elf/endswith.h | 33 +++++++++++++++++++++++++++++++++
> elf/ldconfig.c | 12 +-----------
> elf/readlib.c | 3 ++-
> 3 files changed, 36 insertions(+), 12 deletions(-)
> create mode 100644 elf/endswith.h
>
> diff --git a/elf/endswith.h b/elf/endswith.h
> new file mode 100644
> index 0000000000..c6430c48be
> --- /dev/null
> +++ b/elf/endswith.h
> @@ -0,0 +1,33 @@
> +/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + 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; version 2 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 <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _ENDSWITH_H
> +#define _ENDSWITH_H
> +
> +#include <string.h>
> +
> +/* Return true if the N bytes at NAME end with with the characters in
> + the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
> + Expected to be called with a string literal for SUFFIX. */
> +static inline bool
> +endswithn (const char *name, size_t n, const char *suffix)
> +{
> + return (n >= strlen (suffix)
> + && memcmp (name + n - strlen (suffix), suffix,
> + strlen (suffix)) == 0);
> +}
> +
> +#endif /* _ENDSWITH_H */
Ok.
> diff --git a/elf/ldconfig.c b/elf/ldconfig.c
> index b64c54b53e..0f3ef707dd 100644
> --- a/elf/ldconfig.c
> +++ b/elf/ldconfig.c
> @@ -40,6 +40,7 @@
> #include <libgen.h>
>
> #include <ldconfig.h>
> +#include <endswith.h>
> #include <dl-cache.h>
> #include <dl-hwcaps.h>
> #include <dl-is_dso.h>
> @@ -661,17 +662,6 @@ struct dlib_entry
> struct dlib_entry *next;
> };
>
> -/* Return true if the N bytes at NAME end with with the characters in
> - the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
> - Expected to be called with a string literal for SUFFIX. */
> -static inline bool
> -endswithn (const char *name, size_t n, const char *suffix)
> -{
> - return (n >= strlen (suffix)
> - && memcmp (name + n - strlen (suffix), suffix,
> - strlen (suffix)) == 0);
> -}
> -
> /* Skip some temporary DSO files. These files may be partially written
> and lead to ldconfig crashes when examined. */
> static bool
> diff --git a/elf/readlib.c b/elf/readlib.c
> index 4d67c74136..32e8b8eb22 100644
> --- a/elf/readlib.c
> +++ b/elf/readlib.c
> @@ -33,6 +33,7 @@
> #include <gnu/lib-names.h>
>
> #include <ldconfig.h>
> +#include <endswith.h>
>
> #define Elf32_CLASS ELFCLASS32
> #define Elf64_CLASS ELFCLASS64
> @@ -48,7 +49,7 @@ static bool
> is_gdb_python_file (const char *name)
> {
> size_t len = strlen (name);
> - return len > 7 && strcmp (name + len - 7, "-gdb.py") == 0;
> + return endswithn (name, len, "-gdb.py");
> }
>
> /* Returns 0 if everything is ok, != 0 in case of error. */
Ok.
Am Donnerstag, 4. Juli 2024, 14:59:37 CEST schrieb Adhemerval Zanella Netto:
>
> On 06/05/24 14:16, Adam Sampson wrote:
> > is_gdb_python_file is doing a similar test, so it can use this helper
> > function as well.
> >
> > Signed-off-by: Adam Sampson <ats@offog.org>
>
> LGTM, thanks. Andreas will need to ack this for 2.40.
OK
>
> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
> > ---
> > elf/endswith.h | 33 +++++++++++++++++++++++++++++++++
> > elf/ldconfig.c | 12 +-----------
> > elf/readlib.c | 3 ++-
> > 3 files changed, 36 insertions(+), 12 deletions(-)
> > create mode 100644 elf/endswith.h
> >
> > diff --git a/elf/endswith.h b/elf/endswith.h
> > new file mode 100644
> > index 0000000000..c6430c48be
> > --- /dev/null
> > +++ b/elf/endswith.h
> > @@ -0,0 +1,33 @@
> > +/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
> > + This file is part of the GNU C Library.
> > +
> > + 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; version 2 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 <https://www.gnu.org/licenses/>. */
> > +
> > +#ifndef _ENDSWITH_H
> > +#define _ENDSWITH_H
> > +
> > +#include <string.h>
> > +
> > +/* Return true if the N bytes at NAME end with with the characters in
> > + the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
> > + Expected to be called with a string literal for SUFFIX. */
> > +static inline bool
> > +endswithn (const char *name, size_t n, const char *suffix)
> > +{
> > + return (n >= strlen (suffix)
> > + && memcmp (name + n - strlen (suffix), suffix,
> > + strlen (suffix)) == 0);
> > +}
> > +
> > +#endif /* _ENDSWITH_H */
>
> Ok.
>
> > diff --git a/elf/ldconfig.c b/elf/ldconfig.c
> > index b64c54b53e..0f3ef707dd 100644
> > --- a/elf/ldconfig.c
> > +++ b/elf/ldconfig.c
> > @@ -40,6 +40,7 @@
> > #include <libgen.h>
> >
> > #include <ldconfig.h>
> > +#include <endswith.h>
> > #include <dl-cache.h>
> > #include <dl-hwcaps.h>
> > #include <dl-is_dso.h>
> > @@ -661,17 +662,6 @@ struct dlib_entry
> > struct dlib_entry *next;
> > };
> >
> > -/* Return true if the N bytes at NAME end with with the characters in
> > - the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
> > - Expected to be called with a string literal for SUFFIX. */
> > -static inline bool
> > -endswithn (const char *name, size_t n, const char *suffix)
> > -{
> > - return (n >= strlen (suffix)
> > - && memcmp (name + n - strlen (suffix), suffix,
> > - strlen (suffix)) == 0);
> > -}
> > -
> > /* Skip some temporary DSO files. These files may be partially written
> > and lead to ldconfig crashes when examined. */
> > static bool
> > diff --git a/elf/readlib.c b/elf/readlib.c
> > index 4d67c74136..32e8b8eb22 100644
> > --- a/elf/readlib.c
> > +++ b/elf/readlib.c
> > @@ -33,6 +33,7 @@
> > #include <gnu/lib-names.h>
> >
> > #include <ldconfig.h>
> > +#include <endswith.h>
> >
> > #define Elf32_CLASS ELFCLASS32
> > #define Elf64_CLASS ELFCLASS64
> > @@ -48,7 +49,7 @@ static bool
> > is_gdb_python_file (const char *name)
> > {
> > size_t len = strlen (name);
> > - return len > 7 && strcmp (name + len - 7, "-gdb.py") == 0;
> > + return endswithn (name, len, "-gdb.py");
> > }
> >
> > /* Returns 0 if everything is ok, != 0 in case of error. */
>
>
> Ok.
>
new file mode 100644
@@ -0,0 +1,33 @@
+/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ 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; version 2 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 <https://www.gnu.org/licenses/>. */
+
+#ifndef _ENDSWITH_H
+#define _ENDSWITH_H
+
+#include <string.h>
+
+/* Return true if the N bytes at NAME end with with the characters in
+ the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
+ Expected to be called with a string literal for SUFFIX. */
+static inline bool
+endswithn (const char *name, size_t n, const char *suffix)
+{
+ return (n >= strlen (suffix)
+ && memcmp (name + n - strlen (suffix), suffix,
+ strlen (suffix)) == 0);
+}
+
+#endif /* _ENDSWITH_H */
@@ -40,6 +40,7 @@
#include <libgen.h>
#include <ldconfig.h>
+#include <endswith.h>
#include <dl-cache.h>
#include <dl-hwcaps.h>
#include <dl-is_dso.h>
@@ -661,17 +662,6 @@ struct dlib_entry
struct dlib_entry *next;
};
-/* Return true if the N bytes at NAME end with with the characters in
- the string SUFFIX. (NAME[N + 1] does not have to be a null byte.)
- Expected to be called with a string literal for SUFFIX. */
-static inline bool
-endswithn (const char *name, size_t n, const char *suffix)
-{
- return (n >= strlen (suffix)
- && memcmp (name + n - strlen (suffix), suffix,
- strlen (suffix)) == 0);
-}
-
/* Skip some temporary DSO files. These files may be partially written
and lead to ldconfig crashes when examined. */
static bool
@@ -33,6 +33,7 @@
#include <gnu/lib-names.h>
#include <ldconfig.h>
+#include <endswith.h>
#define Elf32_CLASS ELFCLASS32
#define Elf64_CLASS ELFCLASS64
@@ -48,7 +49,7 @@ static bool
is_gdb_python_file (const char *name)
{
size_t len = strlen (name);
- return len > 7 && strcmp (name + len - 7, "-gdb.py") == 0;
+ return endswithn (name, len, "-gdb.py");
}
/* Returns 0 if everything is ok, != 0 in case of error. */