| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/3] x86/hvm: Rearange check_segment() to use a switch statement
 >>> On 03.07.17 at 15:15, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 03/07/17 13:34, Jan Beulich wrote:
>>>>> On 30.06.17 at 17:04, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> +    case x86_seg_ds:
>>> +    case x86_seg_es:
>>> +        if ( (reg->attr.fields.type & 0x8) && !(reg->attr.fields.type & 
>>> 0x2) )
>>> +        {
>>> +            gprintk(XENLOG_ERR, "Non-readable segment provided for DS or 
> ES\n");
>>> +            return -EINVAL;
>>> +        }
>>> +        break;
>>> +
>>> +    default: /* -Werror=switch */
>>> +        break;
>>>      }
>> Perhaps better to have
>>
>>     default:
>>         ASSERT_UNREACHABLE();
>>     case x86_seg_tr:
>>         break;
>>
>> to make more visible that it is not an oversight that especially FS
>> and GS aren't being handled here? Either way
>> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> The x86_seg_tr case exits check_segment() rather earlier.
I don't think it does - there are just two specific error paths there.
>  How about
> 
> default:
>     ASSERT_UNREACHABLE();
>     return -EINVAL;
> 
> ?
Indeed I would have suggested this if I had been able to convince
myself that x86_seg_tr can't come here.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |