From: Jay Satiro Date: Mon, 29 May 2017 22:04:53 +0000 (-0400) Subject: test557: fix ubsan runtime error due to int left shift X-Git-Tag: curl-7_54_1~73 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=35682764a9dc7eb0fed3fbb1c0074f1c34dd60b2;p=thirdparty%2Fcurl.git test557: fix ubsan runtime error due to int left shift - Test curl_msnprintf negative int width arg using INT_MIN instead of 1 << 31 which is undefined behavior. Closes https://github.com/curl/curl/issues/1516 --- diff --git a/tests/libtest/lib557.c b/tests/libtest/lib557.c index ca3118aec2..4a598f22dc 100644 --- a/tests/libtest/lib557.c +++ b/tests/libtest/lib557.c @@ -27,6 +27,10 @@ #include "test.h" +#ifdef HAVE_LIMITS_H +#include +#endif + #ifdef HAVE_LOCALE_H # include /* for setlocale() */ #endif @@ -1621,8 +1625,8 @@ static int test_float_formatting(void) 123456789123456789123456789.2987654); errors += strlen_check(buf, 325); - /* 1<<31 turns negative (-2147483648) when used signed */ - curl_msnprintf(buf, sizeof(buf), "%*f", (1<<31), 9.1); + /* check negative when used signed */ + curl_msnprintf(buf, sizeof(buf), "%*f", INT_MIN, 9.1); errors += string_check(buf, "9.100000"); /* curl_msnprintf() limits a single float output to 325 bytes maximum