diff --git a/Replace-Curses-mvprintw-with-va_list-based-equivalen.patch b/Replace-Curses-mvprintw-with-va_list-based-equivalen.patch new file mode 100644 index 0000000000000000000000000000000000000000..0283a6b89ed614a31ed7240bd4de14940e54777a --- /dev/null +++ b/Replace-Curses-mvprintw-with-va_list-based-equivalen.patch @@ -0,0 +1,40 @@ +From e9e8dd148b9454abb5a7704d6f6249f7aa7aeded Mon Sep 17 00:00:00 2001 +From: herengui +Date: Thu, 10 Mar 2022 18:14:43 +0800 +Subject: [PATCH] Replace Curses mvprintw() with va_list-based equivalent + +Instead of allocating a buffer for the formatted string and printing +it with mvprintw() -- which should have a "%s" format argument to guard +against '%' characters in the formatted string, hat tip Andreas Tille --, +use vw_printw() which takes a va_list so can do the formatting itself. + +Signed-off-by: herengui +--- + bam_tview_curses.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/bam_tview_curses.c b/bam_tview_curses.c +index 11db0da..37fb033 100644 +--- a/bam_tview_curses.c ++++ b/bam_tview_curses.c +@@ -78,15 +78,11 @@ static void curses_destroy(tview_t* base) { + */ + + static void curses_mvprintw(struct AbstractTview* tv,int y ,int x,const char* fmt,...) { +- unsigned int size=tv->mcol+2; +- char* str=malloc(size); +- if(str==0) exit(EXIT_FAILURE); + va_list argptr; + va_start(argptr, fmt); +- vsnprintf(str,size, fmt, argptr); ++ if (wmove(stdscr, y, x) != ERR) ++ vw_printw(stdscr, fmt, argptr); + va_end(argptr); +- mvprintw(y,x,str); +- free(str); + } + + static void curses_mvaddch(struct AbstractTview* tv,int y,int x,int ch) { +-- +2.20.1 + diff --git a/samtools.spec b/samtools.spec index fcf04ddf885d0f5fd8721f86d041b8522bb5024b..49108c2b0ecc9e5ff845790ea82ec1d1feb0e330 100644 --- a/samtools.spec +++ b/samtools.spec @@ -1,11 +1,13 @@ Name: samtools Version: 1.12 -Release: 4 +Release: 5 Summary: Tools (written in C using htslib) for manipulating next-generation sequencing data License: MIT and BSD URL: http://www.htslib.org Source0: https://github.com/samtools/samtools/archive/%{name}-%{version}.tar.bz2 +Patch0: Replace-Curses-mvprintw-with-va_list-based-equivalen.patch + BuildRequires: gcc autoconf automake make zlib-devel htslib-devel ncurses-devel bzip2-devel xz-devel %description @@ -24,7 +26,7 @@ Requires: %{name} = %{version}-%{release} Header files and libraries for compiling against %{name} %prep -%setup -q -n %{name}-%{version} +%autosetup -p1 %build autoheader @@ -57,6 +59,9 @@ install -D -p -m 0755 libbam.a %{buildroot}%{_libdir}/libbam.a %{_libdir}/libbam.a %changelog +* Thu Mar 10 2022 herengui - 1.12-5 +- fix build error + * Tue Feb 08 2022 herengui - 1.12-4 - rebuild for htslib version updated.