folly/test/json_test: fix heap-buffer-overflow in Json.PrintTo test
authorIgor Sugak <sugak@fb.com>
Fri, 12 Feb 2016 23:54:28 +0000 (15:54 -0800)
committerfacebook-github-bot-0 <folly-bot@fb.com>
Sat, 13 Feb 2016 00:20:26 +0000 (16:20 -0800)
Summary:Json.PrintTo test if failing with heap-buffer-overflow asan abort. The problem here comes up
when values of `std::string` and `std::ostrstring::str()` are compared.  `std::ostrstring::str()` returns
*non null* terminated array of `char`s. When compared with `std::string` a read from memory after
the end that array is made. Fixing the test by replacing `std::ostrstream` with `std::ostringstream`,
that does append `\0`.

Reviewed By: yfeldblum

Differential Revision: D2934352

fb-gh-sync-id: c6a5d765c9951716b8a14715702cf3d940c6d723
shipit-source-id: c6a5d765c9951716b8a14715702cf3d940c6d723

folly/test/JsonTest.cpp

index d166b75b6d035923eb6a92bb6c203b9478b68d6a..ec27a901605612c9b0b62cccc7d71e3775d8f061 100644 (file)
@@ -466,7 +466,7 @@ TEST(Json, SortKeys) {
 }
 
 TEST(Json, PrintTo) {
-  std::ostrstream oss;
+  std::ostringstream oss;
 
   dynamic value = dynamic::object
     ("foo", "bar")