Re: [PATCH 3/3] floppy: suppress UBSAN warning in setup_rw_floppy()

From: Denis Efremov
Date: Wed Apr 22 2020 - 04:32:49 EST




On 4/22/20 11:24 AM, Christoph Hellwig wrote:
>
> I don't think we can just change FD_RAW_CMD_SIZE or cmd as that could
> break userspace.

The second patch adds these defines FD_RAW_CMD_SIZE, FD_RAW_REPLY_SIZE.
Currently they are not in the uapi. Ok, I will send v2.

But otherwise, yes something very much like that:
>
>> #define FD_RAW_CMD_SIZE 16
>> #define FD_RAW_REPLY_SIZE 16
>> +#define FD_RAW_FULL_CMD_SIZE (FD_RAW_CMD_SIZE + 1 + FD_RAW_CMD_SIZE)
>>
>> unsigned char cmd_count;
>> - unsigned char cmd[FD_RAW_CMD_SIZE];
>> - unsigned char reply_count;
>> - unsigned char reply[FD_RAW_REPLY_SIZE];
>> + union {
>> + struct {
>> + unsigned char cmd[FD_RAW_CMD_SIZE];
>> + unsigned char reply_count;
>> + unsigned char reply[FD_RAW_REPLY_SIZE];
>> + };
>> + unsigned char full_cmd[FD_RAW_FULL_CMD_SIZE];
>> + };
>
>> int track;
>>
>> Denis
> ---end quoted text---
>