aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2017-05-29 18:04:53 -0400
committerJay Satiro <raysatiro@yahoo.com>2017-05-29 18:04:53 -0400
commit35682764a9dc7eb0fed3fbb1c0074f1c34dd60b2 (patch)
tree4f0152ff992851b056d4fdac88f1338a8f85590f
parent35e9281ef8ac394b7d718cf6bd65bdc2ff8047b0 (diff)
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
-rw-r--r--tests/libtest/lib557.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/libtest/lib557.c b/tests/libtest/lib557.c
index ca3118aec..4a598f22d 100644
--- a/tests/libtest/lib557.c
+++ b/tests/libtest/lib557.c
@@ -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