Messages in this thread | | | Subject | Re: [PATCH 2.4] Fix rlimit check in precheck_file_write() | From | Alan Cox <> | Date | Thu, 23 Dec 2004 11:29:33 +0000 |
| |
On Mer, 2004-12-22 at 21:57, Jason Uhlenkott wrote: > Remove a broken assumption that rlimits are 32 bits which can cause > nasty things to happen on 64-bit machines if we try to write past the > 2^32-1th character of a file and a larger file size limit exists. > > Signed-off-by: Jason Uhlenkott <jasonuhl@sgi.com> > > --- linux-2.4.29-pre3.orig/mm/filemap.c 2004-11-17 03:54:22.000000000 -0800 > +++ linux-2.4.29-pre3/mm/filemap.c 2004-12-22 13:41:46.000000000 -0800 > @@ -3088,9 +3088,9 @@ > send_sig(SIGXFSZ, current, 0); > goto out; > } > - if (pos > 0xFFFFFFFFULL || *count > limit - (u32)pos) { > + if (*count > limit - pos) { > /* send_sig(SIGXFSZ, current, 0); */ > - *count = limit - (u32)pos; > + *count = limit - pos; > }
Are you sure this is safe for all conceivable 32bit cases as well as your 64bit one ? I don't think it is looking at the overflow cases in the if that you removed checking of.
Alan
- 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/
| |