From 8732d62334c3059ef1953b8bf3a124b7126f61eb Mon Sep 17 00:00:00 2001 From: Matthew Fredrickson Date: Fri, 15 Jun 2018 15:21:27 -0500 Subject: [PATCH] menuselect/menuselect_curses: Resolves sprintf usage error Acccording to the man page for sprintf, using the same buffer for output as one used as an input yields undefined behavior. This patch should work around this problem. ASTERISK-27903 Reported-by: Alexander Traud Change-Id: I2213dcb454aff26457e2e4cc9c6821276463ae3a --- menuselect/menuselect_curses.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menuselect/menuselect_curses.c b/menuselect/menuselect_curses.c index 97f1f17149..0917eba62b 100644 --- a/menuselect/menuselect_curses.c +++ b/menuselect/menuselect_curses.c @@ -227,7 +227,7 @@ static void display_mem_info(WINDOW *menu, struct member *mem, int start_y, int buf[0] = '\0'; new_line = 1; } - sprintf(buf, "%s%*.*s%s", buf, new_line ? 0 : 1, new_line ? 0 : 1, " ", word); + sprintf(buf + strlen(buf), "%*.*s%s", new_line ? 0 : 1, new_line ? 0 : 1, " ", word); new_line = 0; } if (strlen(buf)) {