On 29/11/2019 12:15, Jan Beulich wrote:
> On 29.11.2019 12:59, Ian Jackson wrote:
>> Jan Beulich writes ("[PATCH] console: avoid buffer overflow in 
>> guest_console_write()"):
>>> The switch of guest_console_write()'s second parameter from plain to
>>> unsigned int has caused the function's main loop header to no longer
>>> guard the min_t() use within the function against effectively negative
>>> values, due to the casts hidden inside the macro. Replace by a plain
>>> min(), converting one of the arguments suitably without involving any
>>> cast.
>>>
>>> Fixes: ea601ec9995b ("xen/console: Rework HYPERCALL_console_io interface")
>>> Reported-by: Ilja Van Sprundel <ivansprun...@ioactive.com>
>>> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>> ea601ec9995b included this hunk:
>>
>>        case CONSOLEIO_read:
>>   +        /*
>>   +         * The return value is either the number of characters read or
>>   +         * a negative value in case of error. So we need to prevent
>>   +         * overlap between the two sets.
>>   +         */
>>   +        rc = -E2BIG;
>>   +        if ( count > INT_MAX )
>>   +            break;
>>
>> Maybe it would be good to move that outside the switch so that it
>> affects CONSOLEIO_write too ?
> And any future subops? And limit output more than necessary (not
> that I think anyone will want to push more than 2G at a time
> through this interface, but anyway)?

Linux is seriously considering initrds > 4G now for various usecases.

2G really isn't enough for everyone, and we shouldn't hardcode blind
presumptions like this.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to