Package: perl Version: 5.34.0-4 Severity: grave To reproduce
perl -MIO::Handle -e 'open X, "<", "." or die $!; $_ = <X>; printf "%s %s %s\n", X->error(), $!;' perl -MIO::Handle -e 'open X, ">", "/dev/full" or die $!; print X 1; flush X; printf "%s %s %s\n", X->error(), $!; close X' Expected output -1 Bad file descriptor -1 No space left on device Actual output 0 Bad file descriptor 0 No space left on device This is quite alarming. I think it makes it in fact impossible to read files fully reliably in Perl. "use autodie" does not seem to help. And scripts might reasonably have expected that they could defer error handling by testing error() rather than each call (as one can in C). I think this used to work, but, evidently, only in the distant past, since my jessie chroot doesn't get this right either. Justification for the severity: Can cause data loss: if a file is opened but unreadable for any reason, the program will process the part (if any) that will is readable and then Ian. -- Ian Jackson <ijack...@chiark.greenend.org.uk> These opinions are my own. Pronouns: they/he. If I emailed you from @fyvzl.net or @evade.org.uk, that is a private address which bypasses my fierce spamfilter.