Messages in this thread | | | From | Andreas Gruenbacher <> | Subject | Re: [PATCH] NFS: nfsaclsvc_encode_getaclres() - Fix potential NULL deref and tiny optimization. | Date | Thu, 2 Nov 2006 16:07:46 +0100 |
| |
On Tuesday 31 October 2006 21:39, David Rientjes wrote: > On Tue, 31 Oct 2006, Andreas Gruenbacher wrote: > > > > w should be an unsigned int. > > > > > > Makes sense. > > > > No, this breaks the while loop further below: with an unsigned int, the > > loop counter underflows and wraps. > > This is not a problem with w being an unsigned int, it's a problem with > the while loop. nfsacl_size() returns unsigned int as it should and the > while loop can be written to respect that since integer division in C > truncates: > > for (n = w / PAGE_SIZE; n > 0; n--) > if (!rqstp->rq_respages[rqstp->rq_resused++];
Assuming that PAGE_SIZE = 4096 and w = 100, the original loop iterates once, while your proposed version iterates zero times -- the current code does the right thing. So the proposed change is still bad, sorry.
Andreas - 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/
| |