[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 02/18] replay: internal functions for replay log
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PULL 02/18] replay: internal functions for replay log |
Date: |
Mon, 14 May 2018 08:34:39 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Paolo Bonzini <address@hidden> writes:
> 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.
Care to submit a patch?