diff mbox series

[v1] package/readline: add upstream patch to fix crash with invalid locale specification

Message ID 20230322162538.19202-1-ps.report@gmx.net
State Accepted
Headers show
Series [v1] package/readline: add upstream patch to fix crash with invalid locale specification | expand

Commit Message

Peter Seiderer March 22, 2023, 4:25 p.m. UTC
Add upstream patch to fix crash with invalid locale specification (see [1]
for details).

Fixes:

  - https://bugs.busybox.net/show_bug.cgi?id=15456

[1] https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00002.html

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
 ...ch-1-fix-crash-when-readline-is-star.patch | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch

Comments

Stefan Agner April 24, 2023, 5:34 p.m. UTC | #1
On 2023-03-22 17:25, Peter Seiderer wrote:
> Add upstream patch to fix crash with invalid locale specification (see [1]
> for details).
> 
> Fixes:
> 
>   - https://bugs.busybox.net/show_bug.cgi?id=15456
> 
> [1] https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00002.html
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

This fixes a crash seen with bluetoothctl here.

Tested-by: Stefan Agner <stefan@agner.ch>

Ideally this should be applied to to LTS Buildroot 2023.02 too.

--
Stefan

> ---
>  ...ch-1-fix-crash-when-readline-is-star.patch | 41 +++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644
> package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> 
> diff --git
> a/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> new file mode 100644
> index 0000000000..b0f784b8ba
> --- /dev/null
> +++
> b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> @@ -0,0 +1,41 @@
> +From b8d91eab12603fa88e095248855f5f772d182d05 Mon Sep 17 00:00:00 2001
> +From: Chet Ramey <chet.ramey@case.edu>
> +Date: Wed, 5 Oct 2022 10:41:16 -0400
> +Subject: [PATCH] Readline-8.2 patch 1: fix crash when readline is started with
> + an invalid locale specification
> +
> +[Upstream:
> https://git.savannah.gnu.org/cgit/readline.git/patch/?id=7274faabe97ce53d6b464272d7e6ab6c1392837b
> + Stripped unrelated ._.gitignore change]
> +Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> +---
> + nls.c      | 4 ++++
> + patchlevel | 2 +-
> + 2 files changed, 5 insertions(+), 1 deletion(-)
> +
> +diff --git a/nls.c b/nls.c
> +index 5c6a13b..8c027d6 100644
> +--- a/nls.c
> ++++ b/nls.c
> +@@ -141,6 +141,10 @@ _rl_init_locale (void)
> +   if (lspec == 0)
> +     lspec = "";
> +   ret = setlocale (LC_CTYPE, lspec);	/* ok, since it does not change locale */
> ++  if (ret == 0 || *ret == 0)
> ++    ret = setlocale (LC_CTYPE, (char *)NULL);
> ++  if (ret == 0 || *ret == 0)
> ++    ret = RL_DEFAULT_LOCALE;
> + #else
> +   ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
> + #endif
> +diff --git a/patchlevel b/patchlevel
> +index d8c9df7..fdf4740 100644
> +--- a/patchlevel
> ++++ b/patchlevel
> +@@ -1,3 +1,3 @@
> + # Do not edit -- exists only for use by patch
> + 
> +-0
> ++1
> +-- 
> +2.39.2
> +
Yann E. MORIN April 24, 2023, 6:43 p.m. UTC | #2
Peter, All,

On 2023-03-22 17:25 +0100, Peter Seiderer spake thusly:
> Add upstream patch to fix crash with invalid locale specification (see [1]
> for details).
> 
> Fixes:
> 
>   - https://bugs.busybox.net/show_bug.cgi?id=15456
> 
> [1] https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00002.html
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  ...ch-1-fix-crash-when-readline-is-star.patch | 41 +++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644 package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> 
> diff --git a/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> new file mode 100644
> index 0000000000..b0f784b8ba
> --- /dev/null
> +++ b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> @@ -0,0 +1,41 @@
> +From b8d91eab12603fa88e095248855f5f772d182d05 Mon Sep 17 00:00:00 2001
> +From: Chet Ramey <chet.ramey@case.edu>
> +Date: Wed, 5 Oct 2022 10:41:16 -0400
> +Subject: [PATCH] Readline-8.2 patch 1: fix crash when readline is started with
> + an invalid locale specification
> +
> +[Upstream: https://git.savannah.gnu.org/cgit/readline.git/patch/?id=7274faabe97ce53d6b464272d7e6ab6c1392837b
> + Stripped unrelated ._.gitignore change]
> +Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> +---
> + nls.c      | 4 ++++
> + patchlevel | 2 +-
> + 2 files changed, 5 insertions(+), 1 deletion(-)
> +
> +diff --git a/nls.c b/nls.c
> +index 5c6a13b..8c027d6 100644
> +--- a/nls.c
> ++++ b/nls.c
> +@@ -141,6 +141,10 @@ _rl_init_locale (void)
> +   if (lspec == 0)
> +     lspec = "";
> +   ret = setlocale (LC_CTYPE, lspec);	/* ok, since it does not change locale */
> ++  if (ret == 0 || *ret == 0)
> ++    ret = setlocale (LC_CTYPE, (char *)NULL);
> ++  if (ret == 0 || *ret == 0)
> ++    ret = RL_DEFAULT_LOCALE;
> + #else
> +   ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
> + #endif
> +diff --git a/patchlevel b/patchlevel
> +index d8c9df7..fdf4740 100644
> +--- a/patchlevel
> ++++ b/patchlevel
> +@@ -1,3 +1,3 @@
> + # Do not edit -- exists only for use by patch
> + 
> +-0
> ++1
> +-- 
> +2.39.2
> +
> -- 
> 2.39.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Yann E. MORIN April 24, 2023, 6:45 p.m. UTC | #3
Stefan, All,

+Peter K, for backport.

On 2023-04-24 19:34 +0200, Stefan Agner spake thusly:
> On 2023-03-22 17:25, Peter Seiderer wrote:
> > Add upstream patch to fix crash with invalid locale specification (see [1]
> > for details).
> > 
> > Fixes:
> > 
> >   - https://bugs.busybox.net/show_bug.cgi?id=15456
> > 
> > [1] https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00002.html
> > 
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> 
> This fixes a crash seen with bluetoothctl here.

And it also makes bash segfault when there is no locale set, and none
available (it seems). I'll try to cook up a runtime test for bash that
catches the no-locale setup.

> Tested-by: Stefan Agner <stefan@agner.ch>
> Ideally this should be applied to to LTS Buildroot 2023.02 too.

Yes.

Regards,
Yann E. MORIN.

> --
> Stefan
> 
> > ---
> >  ...ch-1-fix-crash-when-readline-is-star.patch | 41 +++++++++++++++++++
> >  1 file changed, 41 insertions(+)
> >  create mode 100644
> > package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> > 
> > diff --git
> > a/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> > b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> > new file mode 100644
> > index 0000000000..b0f784b8ba
> > --- /dev/null
> > +++
> > b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
> > @@ -0,0 +1,41 @@
> > +From b8d91eab12603fa88e095248855f5f772d182d05 Mon Sep 17 00:00:00 2001
> > +From: Chet Ramey <chet.ramey@case.edu>
> > +Date: Wed, 5 Oct 2022 10:41:16 -0400
> > +Subject: [PATCH] Readline-8.2 patch 1: fix crash when readline is started with
> > + an invalid locale specification
> > +
> > +[Upstream:
> > https://git.savannah.gnu.org/cgit/readline.git/patch/?id=7274faabe97ce53d6b464272d7e6ab6c1392837b
> > + Stripped unrelated ._.gitignore change]
> > +Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > +---
> > + nls.c      | 4 ++++
> > + patchlevel | 2 +-
> > + 2 files changed, 5 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/nls.c b/nls.c
> > +index 5c6a13b..8c027d6 100644
> > +--- a/nls.c
> > ++++ b/nls.c
> > +@@ -141,6 +141,10 @@ _rl_init_locale (void)
> > +   if (lspec == 0)
> > +     lspec = "";
> > +   ret = setlocale (LC_CTYPE, lspec);	/* ok, since it does not change locale */
> > ++  if (ret == 0 || *ret == 0)
> > ++    ret = setlocale (LC_CTYPE, (char *)NULL);
> > ++  if (ret == 0 || *ret == 0)
> > ++    ret = RL_DEFAULT_LOCALE;
> > + #else
> > +   ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
> > + #endif
> > +diff --git a/patchlevel b/patchlevel
> > +index d8c9df7..fdf4740 100644
> > +--- a/patchlevel
> > ++++ b/patchlevel
> > +@@ -1,3 +1,3 @@
> > + # Do not edit -- exists only for use by patch
> > + 
> > +-0
> > ++1
> > +-- 
> > +2.39.2
> > +
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Peter Korsgaard May 2, 2023, 6:48 a.m. UTC | #4
>>>>> "Stefan" == Stefan Agner <stefan@agner.ch> writes:

 > On 2023-03-22 17:25, Peter Seiderer wrote:
 >> Add upstream patch to fix crash with invalid locale specification (see [1]
 >> for details).
 >> 
 >> Fixes:
 >> 
 >> - https://bugs.busybox.net/show_bug.cgi?id=15456
 >> 
 >> [1] https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00002.html
 >> 
 >> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

 > This fixes a crash seen with bluetoothctl here.

 > Tested-by: Stefan Agner <stefan@agner.ch>

 > Ideally this should be applied to to LTS Buildroot 2023.02 too.

Committed to 2023.02.x, thanks.
diff mbox series

Patch

diff --git a/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
new file mode 100644
index 0000000000..b0f784b8ba
--- /dev/null
+++ b/package/readline/0002-Readline-8.2-patch-1-fix-crash-when-readline-is-star.patch
@@ -0,0 +1,41 @@ 
+From b8d91eab12603fa88e095248855f5f772d182d05 Mon Sep 17 00:00:00 2001
+From: Chet Ramey <chet.ramey@case.edu>
+Date: Wed, 5 Oct 2022 10:41:16 -0400
+Subject: [PATCH] Readline-8.2 patch 1: fix crash when readline is started with
+ an invalid locale specification
+
+[Upstream: https://git.savannah.gnu.org/cgit/readline.git/patch/?id=7274faabe97ce53d6b464272d7e6ab6c1392837b
+ Stripped unrelated ._.gitignore change]
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ nls.c      | 4 ++++
+ patchlevel | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/nls.c b/nls.c
+index 5c6a13b..8c027d6 100644
+--- a/nls.c
++++ b/nls.c
+@@ -141,6 +141,10 @@ _rl_init_locale (void)
+   if (lspec == 0)
+     lspec = "";
+   ret = setlocale (LC_CTYPE, lspec);	/* ok, since it does not change locale */
++  if (ret == 0 || *ret == 0)
++    ret = setlocale (LC_CTYPE, (char *)NULL);
++  if (ret == 0 || *ret == 0)
++    ret = RL_DEFAULT_LOCALE;
+ #else
+   ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
+ #endif
+diff --git a/patchlevel b/patchlevel
+index d8c9df7..fdf4740 100644
+--- a/patchlevel
++++ b/patchlevel
+@@ -1,3 +1,3 @@
+ # Do not edit -- exists only for use by patch
+ 
+-0
++1
+-- 
+2.39.2
+