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
This commit is contained in:
Родитель
35e9281ef8
Коммит
35682764a9
|
@ -27,6 +27,10 @@
|
|||
|
||||
#include "test.h"
|
||||
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LOCALE_H
|
||||
# include <locale.h> /* 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
|
||||
|
|
Загрузка…
Ссылка в новой задаче