scripts/kconfig/qconf.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
If you enable the "Option -> Show Debug Info" and click a click, the
program terminates with the following error:
*** buffer overflow detected ***: terminated
The buffer overflow is caused by the following line:
strcat(data, "$");
The buffer needs one more byte to accommodate the additional character.
Fixes: c4f7398bee9c ("kconfig: qconf: make debug links work again")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
scripts/kconfig/qconf.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index 7dba8014ead4..e260cab1c2af 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -1166,7 +1166,7 @@ void ConfigInfoView::clicked(const QUrl &url)
{
QByteArray str = url.toEncoded();
const std::size_t count = str.size();
- char *data = new char[count + 1];
+ char *data = new char[count + 2]; // '$' + '\0'
struct symbol **result;
struct menu *m = NULL;
--
2.43.0
On Tue, Oct 1, 2024 at 6:02 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> If you enable the "Option -> Show Debug Info" and click a click, the
I meant "click a link"
> program terminates with the following error:
>
> *** buffer overflow detected ***: terminated
>
> The buffer overflow is caused by the following line:
>
> strcat(data, "$");
>
> The buffer needs one more byte to accommodate the additional character.
>
> Fixes: c4f7398bee9c ("kconfig: qconf: make debug links work again")
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> scripts/kconfig/qconf.cc | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
> index 7dba8014ead4..e260cab1c2af 100644
> --- a/scripts/kconfig/qconf.cc
> +++ b/scripts/kconfig/qconf.cc
> @@ -1166,7 +1166,7 @@ void ConfigInfoView::clicked(const QUrl &url)
> {
> QByteArray str = url.toEncoded();
> const std::size_t count = str.size();
> - char *data = new char[count + 1];
> + char *data = new char[count + 2]; // '$' + '\0'
> struct symbol **result;
> struct menu *m = NULL;
>
> --
> 2.43.0
>
--
Best Regards
Masahiro Yamada
© 2016 - 2026 Red Hat, Inc.