diff options
author | Steven Moreland <smoreland@google.com> | 2018-07-20 11:02:47 -0700 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2018-07-20 11:02:47 -0700 |
commit | a96e43d3d6736ebe4985ac3a818135768a9672f8 (patch) | |
tree | 16f21aea3a73c4cdb0be0ae8331cec5fc5e3a231 /base/parseint_test.cpp | |
parent | 74be24d696f2d67293de6b9bb6e715c1728abed7 (diff) | |
download | system_core-a96e43d3d6736ebe4985ac3a818135768a9672f8.tar.gz system_core-a96e43d3d6736ebe4985ac3a818135768a9672f8.tar.bz2 system_core-a96e43d3d6736ebe4985ac3a818135768a9672f8.zip |
ParseInt/ParseUint: allow validation only.
Removes segfault if T* out != nullptr and just
returns validation result.
Bug: 110758329
Test: libbase_test
Change-Id: I0f304533a7076bba977fbd1a715b9cc0d9e58e75
Diffstat (limited to 'base/parseint_test.cpp')
-rw-r--r-- | base/parseint_test.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/base/parseint_test.cpp b/base/parseint_test.cpp index fb1c33993..8f9ed776b 100644 --- a/base/parseint_test.cpp +++ b/base/parseint_test.cpp @@ -36,6 +36,10 @@ TEST(parseint, signed_smoke) { ASSERT_EQ(12, i); ASSERT_FALSE(android::base::ParseInt("-12", &i, 0, 15)); ASSERT_FALSE(android::base::ParseInt("16", &i, 0, 15)); + + ASSERT_FALSE(android::base::ParseInt<int>("x", nullptr)); + ASSERT_FALSE(android::base::ParseInt<int>("123x", nullptr)); + ASSERT_TRUE(android::base::ParseInt<int>("1234", nullptr)); } TEST(parseint, unsigned_smoke) { @@ -55,6 +59,10 @@ TEST(parseint, unsigned_smoke) { ASSERT_EQ(12u, i); ASSERT_FALSE(android::base::ParseUint("-12", &i, 15u)); ASSERT_FALSE(android::base::ParseUint("16", &i, 15u)); + + ASSERT_FALSE(android::base::ParseUint<unsigned short>("x", nullptr)); + ASSERT_FALSE(android::base::ParseUint<unsigned short>("123x", nullptr)); + ASSERT_TRUE(android::base::ParseUint<unsigned short>("1234", nullptr)); } TEST(parseint, no_implicit_octal) { |