From: Colin Patrick McCabe Date: Fri, 25 Mar 2011 21:45:37 +0000 (-0700) Subject: testradospp: zero terminate before printing strs X-Git-Tag: v0.27~243 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b4d49df4563ec63244aeb353f1922fd46b865b5b;p=ceph.git testradospp: zero terminate before printing strs Signed-off-by: Colin McCabe --- diff --git a/src/testradospp.cc b/src/testradospp.cc index d1860d2f9448..1db8f2f7d2ca 100644 --- a/src/testradospp.cc +++ b/src/testradospp.cc @@ -177,7 +177,18 @@ int main(int argc, const char **argv) } int size = io_ctx.read(oid, bl2, 128, 0); - cout << "read result=" << bl2.c_str() << std::endl; + if (size <= 0) { + cout << "failed to read oid " << oid << "." << std::endl; + exit(1); + } + if (size > 4096) { + cout << "read too many bytes from oid " << oid << "." << std::endl; + exit(1); + } + char rbuf[size + 1]; + memcpy(rbuf, bl2.c_str(), size); + rbuf[size] = '\0'; + cout << "read result='" << rbuf << "'" << std::endl; cout << "size=" << size << std::endl; const char *oid2 = "jjj10.rbd";