mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
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
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "daemon.h"
|
||||
#include "actions.h"
|
||||
@@ -41,10 +42,9 @@ do_fallocate (const char *path, int len)
|
||||
}
|
||||
|
||||
#ifdef HAVE_POSIX_FALLOCATE
|
||||
int r;
|
||||
|
||||
r = posix_fallocate (fd, 0, len);
|
||||
if (r == -1) {
|
||||
int err = posix_fallocate (fd, 0, len);
|
||||
if (err != 0) {
|
||||
errno = err;
|
||||
reply_with_perror ("%s", path);
|
||||
close (fd);
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user