From: Haomai Wang Date: Sat, 5 Dec 2015 10:15:05 +0000 (+0800) Subject: Pipe: Fix large message data content length causing overflow X-Git-Tag: v10.0.3~30^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c5ff6f60d2e71dec8814f88031afa4dc7f2c609d;p=ceph.git Pipe: Fix large message data content length causing overflow Fix #13985 Signed-off-by: Haomai Wang Signed-off-by: Jun Huang --- diff --git a/src/msg/simple/Pipe.cc b/src/msg/simple/Pipe.cc index 33884c81cda4..a717c40169a0 100644 --- a/src/msg/simple/Pipe.cc +++ b/src/msg/simple/Pipe.cc @@ -2352,15 +2352,15 @@ int Pipe::write_message(const ceph_msg_header& header, const ceph_msg_footer& fo // payload (front+data) list::const_iterator pb = blist.buffers().begin(); - int b_off = 0; // carry-over buffer offset, if any - int bl_pos = 0; // blist pos - int left = blist.length(); + unsigned b_off = 0; // carry-over buffer offset, if any + unsigned bl_pos = 0; // blist pos + unsigned left = blist.length(); while (left > 0) { - int donow = MIN(left, (int)pb->length()-b_off); + unsigned donow = MIN(left, pb->length()-b_off); if (donow == 0) { ldout(msgr->cct,0) << "donow = " << donow << " left " << left << " pb->length " << pb->length() - << " b_off " << b_off << dendl; + << " b_off " << b_off << dendl; } assert(donow > 0); ldout(msgr->cct,30) << " bl_pos " << bl_pos << " b_off " << b_off