[PATCH] storage: tweak condition to properly test lseek

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



According to the POSIX standard, off_t (returned by lseek) is defined as
signed integral type no shorter than int. Because our offset variable is defined
as unsigned long long, the original check was passed successfully if UINT64_MAX had
been used as offset value, due to implicit conversion.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1177219
---
 src/fdstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/fdstream.c b/src/fdstream.c
index 5d80fc2..b8ea86e 100644
--- a/src/fdstream.c
+++ b/src/fdstream.c
@@ -610,7 +610,7 @@ virFDStreamOpenFileInternal(virStreamPtr st,
     }
 
     if (offset &&
-        lseek(fd, offset, SEEK_SET) != offset) {
+        lseek(fd, offset, SEEK_SET) < 0) {
         virReportSystemError(errno,
                              _("Unable to seek %s to %llu"),
                              path, offset);
-- 
1.9.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]