Richard W.M. Jones wrote:
Subject: [PATCH] Check error returns from posix_fallocate
(RHBZ#579664).
posix_fallocate has a non-standard way to return error indications.
Thus all our calls to posix_fallocate were effectively unchecked. For
example:
$ guestfish alloc test.img 1P
$ echo $?
0
$ ll test.img
-rw-rw-r--. 1 rjones rjones 0 2010-04-06 11:02 test.img
$ rm test.img
With this change, errors are detected and reported properly:
$ ./fish/guestfish alloc test.img 1P
fallocate: File too large
This is a fix for:
https://bugzilla.redhat.com/show_bug.cgi?id=579664
---
daemon/fallocate.c | 8 ++++----
fish/alloc.c | 5 ++++-
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/daemon/fallocate.c b/daemon/fallocate.c
...
+ int err = posix_fallocate (fd, 0, len);
+ if (err != 0) {
+ errno = err;
Confirmed that those are the two sole uses (at least in my
out-of-date repo -- git pull fails, today), and that the fix
makes the usage agree with what POSIX and the posix_fallocate man
page say the function does.
What a shame to have *standardized* such a surprising interface.
ACK.