calculating zero length packet checksum will cause segv,
so skip sending the packet here.
Fixes: https://tracker.ceph.com/issues/42805
Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
uint64_t seglen = 0;
while (len < available && left_pbrs--) {
seglen = pb->length();
+ // Buffer length is zero, no need to send, so skip it
+ if (seglen == 0) {
+ ++pb;
+ continue;
+ }
if (len + seglen > available) {
// don't continue if we enough at least 1 fragment since no available
// space for next ptr.