Message123041
| Author |
vstinner |
| Recipients |
amaury.forgeotdarc, brian.curtin, loewis, mspacek, pitrou, tim.golden, vstinner |
| Date |
2010年12月02日.02:43:27 |
| SpamBayes Score |
3.1228783e-06 |
| Marked as misclassified |
No |
| Message-id |
<1291257810.17.0.470397042996.issue9611@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I agree that clamping is a nice solution, and attached patch implements it.
About the question of the loop: FileIO.readall() uses while(1) without checking for signals. It looks like new_buffersize() maximum size is not BIGCHUNK but (BIGCHUNK-1)*2:
/* Keep doubling until we reach BIGCHUNK;
then keep adding BIGCHUNK. */
if (currentsize <= BIGCHUNK)
return currentsize + currentsize;
else
return currentsize + BIGCHUNK;
Is it a bug? But (BIGCHUNK-1)*2 is always smaller than INT_MAX. So readall() isn't affected by this bug. Should it be patched?
posix.read() doesn't have the bug because it uses an "int" for the size. |
|