Messages in this thread | | | Subject | Re: [PATCH] NFS: Check lengths more thoroughly in NFS4 readdir XDR decode | From | Trond Myklebust <> | Date | Thu, 24 Aug 2006 15:32:54 -0400 |
| |
On Thu, 2006-08-24 at 19:35 +0100, David Howells wrote: > So, what you've done is: > > -+ if (end - p < xlen) > ++ if (end - p < xlen + 1) > goto short_pkt; > + dprintk("filename = %*s\n", len, (char *)p); > + p += xlen; > len = ntohl(*p++); /* bitmap length */ > - p += len; > - if (p + 1 > end) > -+ if (end - p < len) > ++ if (end - p < len + 1) > goto short_pkt; > + p += len; > attrlen = XDR_QUADLEN(ntohl(*p++)); > - p += attrlen; /* attributes */ > - if (p + 2 > end) > -+ if (end - p < attrlen + 1) > ++ if (end - p < attrlen + 2) > > But is this equivalent: > > -+ if (end - p < xlen) > ++ if (end - p <= xlen) > goto short_pkt; > + dprintk("filename = %*s\n", len, (char *)p); > + p += xlen; > len = ntohl(*p++); /* bitmap length */ > - p += len; > - if (p + 1 > end) > -+ if (end - p < len) > ++ if (end - p <= len) > goto short_pkt; > + p += len; > attrlen = XDR_QUADLEN(ntohl(*p++)); > - p += attrlen; /* attributes */ > - if (p + 2 > end) > -+ if (end - p < attrlen + 1) > ++ if (end - p <= attrlen + 1) ^^^^^^^^^^^^^^ > > Do you think?
No. I find that mixture of < and <= is much less easy to read. Besides, the compiler should be able to optimise that for me.
Cheers, Trond
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |