From 90a985b73abc51a5c7bc4b9e6a42469a2ed389cb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 28 Aug 2019 05:41:20 +0530 Subject: [PATCH] Make format_text() more secure --- glfw/cocoa_window.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glfw/cocoa_window.m b/glfw/cocoa_window.m index 8c15b36a1..e896d3bf5 100644 --- a/glfw/cocoa_window.m +++ b/glfw/cocoa_window.m @@ -261,9 +261,13 @@ static inline const char* format_text(const char *src) { static char buf[256]; char *p = buf; + const char *last_char = buf + sizeof(buf) - 1; if (!src[0]) return ""; while (*src) { - p += snprintf(p, sizeof(buf) - (p - buf), "0x%x ", (unsigned char)*(src++)); + int num = snprintf(p, sizeof(buf) - (p - buf), "0x%x ", (unsigned char)*(src++)); + if (num < 0) return ""; + if (p + num >= last_char) break; + p += num; } if (p != buf) *(--p) = 0; return buf;