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

Re: [Xen-devel] [PATCH 1/3] xen/common: Avoid undefined behaviour by shifting into a sign bit



On 05/08/16 15:04, Jan Beulich wrote:
>>>> On 05.08.16 at 15:50, <andrew.cooper3@xxxxxxxxxx> wrote:
>> --- a/xen/common/domctl.c
>> +++ b/xen/common/domctl.c
>> @@ -188,7 +188,7 @@ void getdomaininfo(struct domain *d, struct 
>> xen_domctl_getdomaininfo *info)
>>          (d->controller_pause_count > 0  ? XEN_DOMINF_paused    : 0) |
>>          (d->debugger_attached           ? XEN_DOMINF_debugged  : 0) |
>>          (d->is_xenstore                 ? XEN_DOMINF_xs_domain : 0) |
>> -        d->shutdown_code << XEN_DOMINF_shutdownshift;
>> +        (unsigned int)d->shutdown_code << XEN_DOMINF_shutdownshift;
> 
> Is adding a cast here really the most suitable fix? The only two places
> shutdown_code gets set (besides the -1 initialization) have their right
> side a u8. Nothing ever checks for the value being negative (there are
> just two -1 checks), so converting the field to u8 or unsigned int (and
> using a sentinel different from -1) should both work, avoiding the need
> for a cast.

This seems sensible if possible.

The other bits:

Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.