From: Igor Sugak Date: Fri, 12 Feb 2016 23:54:28 +0000 (-0800) Subject: folly/test/json_test: fix heap-buffer-overflow in Json.PrintTo test X-Git-Tag: deprecate-dynamic-initializer~72 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=e9ae9a1d8d7419d99a97050112231c9cd18cf9d8;p=folly.git folly/test/json_test: fix heap-buffer-overflow in Json.PrintTo test 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 --- diff --git a/folly/test/JsonTest.cpp b/folly/test/JsonTest.cpp index d166b75b..ec27a901 100644 --- a/folly/test/JsonTest.cpp +++ b/folly/test/JsonTest.cpp @@ -466,7 +466,7 @@ TEST(Json, SortKeys) { } TEST(Json, PrintTo) { - std::ostrstream oss; + std::ostringstream oss; dynamic value = dynamic::object ("foo", "bar")