qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2] 9p: Convert use of atoi to qemu_strtoi to al


From: Greg Kurz
Subject: Re: [Qemu-devel] [PATCH v2] 9p: Convert use of atoi to qemu_strtoi to allow error checking
Date: Mon, 12 Mar 2018 18:07:46 +0100

On Mon, 12 Mar 2018 11:00:39 -0500
Eric Blake <address@hidden> wrote:

> On 03/12/2018 10:50 AM, nee wrote:
> 
> >>>        } else if (perm & P9_STAT_MODE_LINK) {
> >>> -        int32_t ofid = atoi(extension.data);
> >>> -        V9fsFidState *ofidp = get_fid(pdu, ofid);
> >>> +        int ofid;  
> >>
> >>
> >> 'unsigned int' and...
> >>  
> >>> +        V9fsFidState *ofidp;
> >>> +
> >>> +        if (qemu_strtoi(extension.data, NULL, 10, &ofid)) {  
> >>
> >>
> >> qemu_strtoui() might be smarter, per Greg's comments on v1.
> >>  
> >>> +            err = -EINVAL;
> >>> +            goto out;
> >>> +        }
> >>> +        ofidp = get_fid(pdu, (int32_t)ofid);  
> >>
> >>
> >> This cast is spurious.
> >>
> >> --
> >> Eric Blake, Principal Software Engineer
> >> Red Hat, Inc.           +1-919-301-3266
> >> Virtualization:  qemu.org | libvirt.org  
> > 
> > I did this because get_fid() takes an int32_t, not an unsigned int.
> > The struct V9fsFidState also uses an int32_t for its `fid` member. Do
> > you want me to change all these types, or just the function being used
> > here?  
> 
> I'll let Greg answer; he's more familiar with the 9p code (I was just 
> commenting based on his initial answer to v1).
> 

Yeah... as I was saying, fids are 32-bit unsigned per spec but the code is
using int32_t indeed. This is incorrect and it should be fixed.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]