commit: 6e09b30342bb353a0c6603325c27a79332c9e66f Author: Marek Szuba <marecki <AT> gentoo <DOT> org> AuthorDate: Thu Sep 28 08:21:30 2023 +0000 Commit: Marek Szuba <marecki <AT> gentoo <DOT> org> CommitDate: Thu Sep 28 08:25:01 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e09b303
app-misc/mc: backport upstream fix for mcdiff segfaults Closes: https://bugs.gentoo.org/914724 Signed-off-by: Marek Szuba <marecki <AT> gentoo.org> app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch | 36 ++++++++++++++++++++++ .../mc/{mc-4.8.30.ebuild => mc-4.8.30-r1.ebuild} | 1 + 2 files changed, 37 insertions(+) diff --git a/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch b/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch new file mode 100644 index 000000000000..ad752a11816f --- /dev/null +++ b/app-misc/mc/files/mc-4.8.30-mcdiff-segfault.patch @@ -0,0 +1,36 @@ +From dfe3279a365d629ba848f0265108d98d9f12348f Mon Sep 17 00:00:00 2001 +From: Andrew Borodin <aboro...@vmail.ru> +Date: Sun, 27 Aug 2023 19:32:53 +0300 +Subject: [PATCH] Ticket 4500: mcdiff: segfault when display of line numbers is + enabled. + +The bug was introduced in 00f84fbf24b5f65381f41c5d6333182bc7921700. + + * (dview_load_options): avoid NULL dereference: don't caclulate the + width of line numbers field here because dview->a isn't created yet. + * (dview_update): caclulate the width of line numbers field using an + actual length of diff lines array. + +Signed-off-by: Andrew Borodin <aboro...@vmail.ru> +--- a/src/diffviewer/ydiff.c ++++ b/src/diffviewer/ydiff.c +@@ -2366,7 +2366,7 @@ dview_load_options (WDiff * dview) + dview->display_symbols = 1; + show_numbers = mc_config_get_bool (mc_global.main_config, "DiffView", "show_numbers", FALSE); + if (show_numbers) +- dview->display_numbers = calc_nwidth ((const GArray * const *) dview->a); ++ dview->display_numbers = 1; + tab_size = mc_config_get_int (mc_global.main_config, "DiffView", "tab_size", 8); + if (tab_size > 0 && tab_size < 9) + dview->tab_size = tab_size; +@@ -2885,6 +2885,10 @@ dview_update (WDiff * dview) + if (height < 2) + return; + ++ /* use an actual length of dview->a */ ++ if (dview->display_numbers != 0) ++ dview->display_numbers = calc_nwidth ((const GArray * const *) dview->a); ++ + width1 = dview->half1 + dview->bias; + width2 = dview->half2 - dview->bias; + if (dview->full) diff --git a/app-misc/mc/mc-4.8.30.ebuild b/app-misc/mc/mc-4.8.30-r1.ebuild similarity index 98% rename from app-misc/mc/mc-4.8.30.ebuild rename to app-misc/mc/mc-4.8.30-r1.ebuild index e1576c254b12..8bd59fa87beb 100644 --- a/app-misc/mc/mc-4.8.30.ebuild +++ b/app-misc/mc/mc-4.8.30-r1.ebuild @@ -50,6 +50,7 @@ S="${WORKDIR}/${MY_P}" PATCHES=( "${FILESDIR}"/${PN}-4.8.26-ncurses-mouse.patch "${FILESDIR}"/${PN}-4.8.29-gentoo-tools.patch + "${FILESDIR}"/${PN}-4.8.30-mcdiff-segfault.patch ) src_prepare() {