]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
buffer: put big buffer on heap, not stack
authorSage Weil <sage@inktank.com>
Mon, 18 Feb 2013 05:47:07 +0000 (21:47 -0800)
committerSage Weil <sage@inktank.com>
Mon, 18 Feb 2013 05:47:07 +0000 (21:47 -0800)
This fixes a segfault on my x86_64 wheezy box.

Signed-off-by: Sage Weil <sage@inktank.com>
src/test/bufferlist.cc

index 6f8ba19d2265034fd352c439940ff1dcaa46c912..fe91fdf5937f2a7292d6e032eac59a9766865a96 100644 (file)
@@ -1821,9 +1821,10 @@ TEST(BufferList, TestCopyAll) {
   bufferlist bl2;
   i.copy_all(bl2);
   ASSERT_EQ(bl2.length(), BIG_SZ);
-  unsigned char big2[BIG_SZ];
-  bl2.copy(0, BIG_SZ, (char*)big2);
-  ASSERT_EQ(memcmp(big.get(), big2, BIG_SZ), 0);
+  std::tr1::shared_ptr <unsigned char> big2(
+      (unsigned char*)malloc(BIG_SZ), free);
+  bl2.copy(0, BIG_SZ, (char*)big2.get());
+  ASSERT_EQ(memcmp(big.get(), big2.get(), BIG_SZ), 0);
 }
 
 TEST(BufferHash, all) {