Changeset 254971 in webkit
- Timestamp:
- Jan 23, 2020 2:58:48 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r254970 r254971 1 2020-01-23 Takashi Komori <Takashi.Komori@sony.com> 2 3 KeyedDecoderGeneric crashes when it accesses a data with empty string key. 4 https://bugs.webkit.org/show_bug.cgi?id=206572 5 6 Reviewed by Fujii Hironori. 7 8 Changed null string which was used for HasMap key to empty string. 9 10 Test: TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp 11 12 * platform/generic/KeyedDecoderGeneric.cpp: 13 (WebCore::readString): 14 1 15 2020-01-23 Yusuke Suzuki <ysuzuki@apple.com> 2 16 -
trunk/Source/WebCore/platform/generic/KeyedDecoderGeneric.cpp
r254811 r254971 54 54 if (!decoder.decode(size)) 55 55 return false; 56 if (!size) { 57 result = emptyString(); 58 return true; 59 } 60 56 61 Vector<uint8_t> buffer(size); 57 62 if (!decoder.decodeFixedLengthData(buffer.data(), size)) 58 63 return false; 59 64 result = String::fromUTF8(buffer.data(), size); 65 if (result.isNull()) 66 return false; 67 60 68 return true; 61 69 } -
trunk/Tools/ChangeLog
r254969 r254971 1 2020-01-23 Takashi Komori <Takashi.Komori@sony.com> 2 3 KeyedDecoderGeneric crashes when it accesses a data with empty string key. 4 https://bugs.webkit.org/show_bug.cgi?id=206572 5 6 Reviewed by Fujii Hironori. 7 8 * TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp: 9 (TestWebKitAPI::TEST): 10 1 11 2020-01-23 Tuomas Karkkainen <tuomas.webkit@apple.com> 2 12 -
trunk/Tools/TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp
r254811 r254971 276 276 EXPECT_EQ(users, decodedUsers); 277 277 } 278 } 278 279 TEST(KeyedCoding, SetAndGetWithEmptyKey) 280 { 281 auto encoder = WebCore::KeyedEncoder::encoder(); 282 encoder->encodeBool("", false); 283 284 auto encodedBuffer = encoder->finishEncoding(); 285 auto decoder = WebCore::KeyedDecoder::decoder(reinterpret_cast<const uint8_t*>(encodedBuffer->data()), encodedBuffer->size()); 286 287 bool success, boolValue; 288 success = decoder->decodeBool("", boolValue); 289 290 EXPECT_TRUE(success); 291 EXPECT_EQ(false, boolValue); 292 } 293 }
Note: See TracChangeset
for help on using the changeset viewer.