[libvirt] [PATCH] storage: tweak condition to properly test lseek

Eric Blake eblake at redhat.com
Tue Mar 3 19:10:46 UTC 2015


On 03/03/2015 08:57 AM, Erik Skultety wrote:
> 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(-)

ACK.

> 
> 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);
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150303/0813a269/attachment-0001.sig>


More information about the libvir-list mailing list