X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fptlrpc%2Fpack_generic.c;h=3804bbc505bd116ee693607368637c1645fddd7b;hb=a4c2aa85752707b2725863c9cce4e924d0cfa9d0;hp=dae73621b985465eab3d176d11087d451f08bb79;hpb=7cf94fb38714afaaa17b68c9a195ae7c8abad1af;p=fs%2Flustre-release.git diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index dae7362..3804bbc 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -24,6 +24,7 @@ #define DEBUG_SUBSYSTEM S_CLASS +#include #include int lustre_pack_msg(int count, int *lens, char **bufs, int *len, @@ -84,7 +85,7 @@ int lustre_unpack_msg(struct lustre_msg *m, int len) m->status = NTOH__u32(m->status); m->type = NTOH__u32(m->type); m->bufcount = NTOH__u32(m->bufcount); - m->last_rcvd = NTOH__u64(m->last_rcvd); + m->last_xid = NTOH__u64(m->last_xid); m->last_committed = NTOH__u64(m->last_committed); required_len = size_round(sizeof(*m) + m->bufcount * sizeof(__u32)); @@ -108,14 +109,23 @@ void *lustre_msg_buf(struct lustre_msg *m, int n) { int i, offset; + if (!m) { + CERROR("no message buffer!\n"); + LBUG(); + return NULL; + } + if (n < 0 || n >= m->bufcount) { - CERROR("referencing bad sub buffer!\n"); + CERROR("referencing bad sub buffer (want %d, count is %d)!\n", + n, m->bufcount); LBUG(); return NULL; } - if (m->buflens[n] == 0) + if (m->buflens[n] == 0) { + CERROR("zero-length buffer requested for buffer %d\n", n); return NULL; + } offset = size_round(sizeof(*m) + m->bufcount * sizeof(__u32));