From 131dfd8cd5deb9fa496222471c68113e825092bc Mon Sep 17 00:00:00 2001 From: sageweil Date: Wed, 10 Oct 2007 20:40:35 +0000 Subject: [PATCH] uninit var fix, heap trashing/encoding bug during rejoin git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1914 29311d96-e01e-0410-9327-a35deaab8ce9 --- branches/sage/mds/mds/mdstypes.h | 4 +++- branches/sage/mds/messages/MExportDirDiscover.h | 11 +++++------ branches/sage/mds/messages/MMDSCacheRejoin.h | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/branches/sage/mds/mds/mdstypes.h b/branches/sage/mds/mds/mdstypes.h index 5b94e9a640317..3d66638220247 100644 --- a/branches/sage/mds/mds/mdstypes.h +++ b/branches/sage/mds/mds/mdstypes.h @@ -114,7 +114,7 @@ struct dirfrag_t { frag_t frag; uint32_t _pad; - dirfrag_t() { } + dirfrag_t() : ino(0), _pad(0) { } dirfrag_t(inodeno_t i, frag_t f) : ino(i), frag(f), _pad(0) { } }; @@ -360,6 +360,8 @@ public: dirfrag_t dirfrag; string dname; + MDSCacheObjectInfo() : ino(0) {} + void _encode(bufferlist& bl) const { ::_encode(ino, bl); ::_encode(dirfrag, bl); diff --git a/branches/sage/mds/messages/MExportDirDiscover.h b/branches/sage/mds/messages/MExportDirDiscover.h index 7375fad6c5057..c311d1e87e940 100644 --- a/branches/sage/mds/messages/MExportDirDiscover.h +++ b/branches/sage/mds/messages/MExportDirDiscover.h @@ -45,15 +45,14 @@ class MExportDirDiscover : public Message { } virtual void decode_payload() { - int off = 0; - payload.copy(off, sizeof(dirfrag), (char*)&dirfrag); - off += sizeof(dirfrag); - ::_decode(path, payload, off); + bufferlist::iterator p = payload.begin(); + ::_decode_simple(dirfrag, p); + ::_decode_simple(path, p); } virtual void encode_payload() { - payload.append((char*)&dirfrag, sizeof(dirfrag)); - ::_encode(path, payload); + ::_encode_simple(dirfrag, payload); + ::_encode_simple(path, payload); } }; diff --git a/branches/sage/mds/messages/MMDSCacheRejoin.h b/branches/sage/mds/messages/MMDSCacheRejoin.h index 5a04e9afa1973..844ece02000ae 100644 --- a/branches/sage/mds/messages/MMDSCacheRejoin.h +++ b/branches/sage/mds/messages/MMDSCacheRejoin.h @@ -67,12 +67,12 @@ class MMDSCacheRejoin : public Message { void _decode(bufferlist::iterator& p) { ::_decode_simple(inode, p); ::_decode_simple(symlink, p); - ::_decode_simple(dirfragtree, p); + dirfragtree._decode(p); } void _encode(bufferlist& bl) const { ::_encode(inode, bl); ::_encode(symlink, bl); - ::_encode(dirfragtree, bl); + dirfragtree._encode(bl); } }; -- 2.39.5