On 11/05/2018 11:27, Peter Maydell wrote:
>> +uint8_t replay_get_byte(void)
>> +{
>> +    uint8_t byte = 0;
>> +    if (replay_file) {
>> +        byte = getc(replay_file);
>> +    }
>> +    return byte;
>> +}
> Coverity (CID 1390576) points out that this function isn't checking
> the error return from getc(). That means we could incorrectly return
> 255 from here and then the return value from replay_get_dword would
> be 0xffffffff, which is unfortunate if the place that's using
> that uses it as a loop boundary.

Thanks!  Pavel can you check it?  How is error checking done in general
for record/replay, should QEMU exit immediately?

> Incidentally, is it worth adding something to our coverity model
> to tell coverity that data from replay_get_byte() is not tainted?

Good idea.  Something like

uint8_t replay_get_byte(void)
{
     uint8_t byte;
     if (!replay_file) {
         return 0;
     }
     return byte;
}

should do.

Paolo

Reply via email to