* [PATCH for-8.2] test-resv-mem: Fix CID 1523911
@ 2023-11-10 8:36 Eric Auger
2023-11-13 7:21 ` Thomas Huth
0 siblings, 1 reply; 4+ messages in thread
From: Eric Auger @ 2023-11-10 8:36 UTC (permalink / raw)
To: eric.auger.pro, eric.auger, qemu-devel, qemu-arm, peter.maydell; +Cc: clg
Coverity complains about passing "&expected" to "run_range_inverse_array",
which dereferences null "expected". I guess the problem is that the
compare_ranges() loop dereferences 'e' without testing it. However the
loop condition is based on 'ranges' which is garanteed to have
the same length as 'expected' given the g_assert_cmpint() just
before the loop. So the code looks safe to me.
Nevertheless adding a test on expected before the loop to get rid of the
warning.
Fixes: CID 1523901
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Coverity (CID 1523901)
---
Hope this fixes the Coverity warning as I cannot test.
---
tests/unit/test-resv-mem.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/unit/test-resv-mem.c b/tests/unit/test-resv-mem.c
index 5963274e2c..cd8f7318cc 100644
--- a/tests/unit/test-resv-mem.c
+++ b/tests/unit/test-resv-mem.c
@@ -44,6 +44,10 @@ static void compare_ranges(const char *prefix, GList *ranges,
print_ranges("out", ranges);
print_ranges("expected", expected);
#endif
+ if (!expected) {
+ g_assert_true(!ranges);
+ return;
+ }
g_assert_cmpint(g_list_length(ranges), ==, g_list_length(expected));
for (l = ranges, e = expected; l ; l = l->next, e = e->next) {
Range *r = (Range *)l->data;
--
2.41.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH for-8.2] test-resv-mem: Fix CID 1523911
2023-11-10 8:36 [PATCH for-8.2] test-resv-mem: Fix CID 1523911 Eric Auger
@ 2023-11-13 7:21 ` Thomas Huth
2023-11-13 7:56 ` Cédric Le Goater
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Huth @ 2023-11-13 7:21 UTC (permalink / raw)
To: Eric Auger, eric.auger.pro, qemu-devel, qemu-arm, peter.maydell; +Cc: clg
On 10/11/2023 09.36, Eric Auger wrote:
> Coverity complains about passing "&expected" to "run_range_inverse_array",
> which dereferences null "expected". I guess the problem is that the
> compare_ranges() loop dereferences 'e' without testing it. However the
> loop condition is based on 'ranges' which is garanteed to have
> the same length as 'expected' given the g_assert_cmpint() just
> before the loop. So the code looks safe to me.
>
> Nevertheless adding a test on expected before the loop to get rid of the
> warning.
>
> Fixes: CID 1523901
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> Reported-by: Coverity (CID 1523901)
>
> ---
>
> Hope this fixes the Coverity warning as I cannot test.
> ---
> tests/unit/test-resv-mem.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tests/unit/test-resv-mem.c b/tests/unit/test-resv-mem.c
> index 5963274e2c..cd8f7318cc 100644
> --- a/tests/unit/test-resv-mem.c
> +++ b/tests/unit/test-resv-mem.c
> @@ -44,6 +44,10 @@ static void compare_ranges(const char *prefix, GList *ranges,
> print_ranges("out", ranges);
> print_ranges("expected", expected);
> #endif
> + if (!expected) {
> + g_assert_true(!ranges);
> + return;
> + }
> g_assert_cmpint(g_list_length(ranges), ==, g_list_length(expected));
> for (l = ranges, e = expected; l ; l = l->next, e = e->next) {
> Range *r = (Range *)l->data;
Reviewed-by: Thomas Huth <thuth@redhat.com>
I'll queue it (unless somebody else wants to take this?).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH for-8.2] test-resv-mem: Fix CID 1523911
2023-11-13 7:21 ` Thomas Huth
@ 2023-11-13 7:56 ` Cédric Le Goater
2023-11-13 7:59 ` Thomas Huth
0 siblings, 1 reply; 4+ messages in thread
From: Cédric Le Goater @ 2023-11-13 7:56 UTC (permalink / raw)
To: Thomas Huth, Eric Auger, eric.auger.pro, qemu-devel, qemu-arm,
peter.maydell, Michael S. Tsirkin
On 11/13/23 08:21, Thomas Huth wrote:
> On 10/11/2023 09.36, Eric Auger wrote:
>> Coverity complains about passing "&expected" to "run_range_inverse_array",
>> which dereferences null "expected". I guess the problem is that the
>> compare_ranges() loop dereferences 'e' without testing it. However the
>> loop condition is based on 'ranges' which is garanteed to have
>> the same length as 'expected' given the g_assert_cmpint() just
>> before the loop. So the code looks safe to me.
>>
>> Nevertheless adding a test on expected before the loop to get rid of the
>> warning.
>>
>> Fixes: CID 1523901
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> Reported-by: Coverity (CID 1523901)
>>
>> ---
>>
>> Hope this fixes the Coverity warning as I cannot test.
>> ---
>> tests/unit/test-resv-mem.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/tests/unit/test-resv-mem.c b/tests/unit/test-resv-mem.c
>> index 5963274e2c..cd8f7318cc 100644
>> --- a/tests/unit/test-resv-mem.c
>> +++ b/tests/unit/test-resv-mem.c
>> @@ -44,6 +44,10 @@ static void compare_ranges(const char *prefix, GList *ranges,
>> print_ranges("out", ranges);
>> print_ranges("expected", expected);
>> #endif
>> + if (!expected) {
>> + g_assert_true(!ranges);
>> + return;
>> + }
>> g_assert_cmpint(g_list_length(ranges), ==, g_list_length(expected));
>> for (l = ranges, e = expected; l ; l = l->next, e = e->next) {
>> Range *r = (Range *)l->data;
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
>
> I'll queue it (unless somebody else wants to take this?).
There is also another fix for the same series :
https://lore.kernel.org/qemu-devel/20231109170715.259520-1-eric.auger@redhat.com/
I was waiting to have a little more for VFIO to queue both but
they could go through your queue also.
Thanks,
C.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH for-8.2] test-resv-mem: Fix CID 1523911
2023-11-13 7:56 ` Cédric Le Goater
@ 2023-11-13 7:59 ` Thomas Huth
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2023-11-13 7:59 UTC (permalink / raw)
To: Cédric Le Goater, Eric Auger, eric.auger.pro, qemu-devel,
qemu-arm, peter.maydell, Michael S. Tsirkin
On 13/11/2023 08.56, Cédric Le Goater wrote:
> On 11/13/23 08:21, Thomas Huth wrote:
>> On 10/11/2023 09.36, Eric Auger wrote:
>>> Coverity complains about passing "&expected" to "run_range_inverse_array",
>>> which dereferences null "expected". I guess the problem is that the
>>> compare_ranges() loop dereferences 'e' without testing it. However the
>>> loop condition is based on 'ranges' which is garanteed to have
>>> the same length as 'expected' given the g_assert_cmpint() just
>>> before the loop. So the code looks safe to me.
>>>
>>> Nevertheless adding a test on expected before the loop to get rid of the
>>> warning.
>>>
>>> Fixes: CID 1523901
>>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>>> Reported-by: Coverity (CID 1523901)
>>>
>>> ---
>>>
>>> Hope this fixes the Coverity warning as I cannot test.
>>> ---
>>> tests/unit/test-resv-mem.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/tests/unit/test-resv-mem.c b/tests/unit/test-resv-mem.c
>>> index 5963274e2c..cd8f7318cc 100644
>>> --- a/tests/unit/test-resv-mem.c
>>> +++ b/tests/unit/test-resv-mem.c
>>> @@ -44,6 +44,10 @@ static void compare_ranges(const char *prefix, GList
>>> *ranges,
>>> print_ranges("out", ranges);
>>> print_ranges("expected", expected);
>>> #endif
>>> + if (!expected) {
>>> + g_assert_true(!ranges);
>>> + return;
>>> + }
>>> g_assert_cmpint(g_list_length(ranges), ==, g_list_length(expected));
>>> for (l = ranges, e = expected; l ; l = l->next, e = e->next) {
>>> Range *r = (Range *)l->data;
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>>
>> I'll queue it (unless somebody else wants to take this?).
>
> There is also another fix for the same series :
>
>
> https://lore.kernel.org/qemu-devel/20231109170715.259520-1-eric.auger@redhat.com/
>
> I was waiting to have a little more for VFIO to queue both but
> they could go through your queue also.
I'm just looking at patches that affect tests/ ... the other fix is not
related to that, so I won't pick up that one.
Thomas
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-11-13 8:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-10 8:36 [PATCH for-8.2] test-resv-mem: Fix CID 1523911 Eric Auger
2023-11-13 7:21 ` Thomas Huth
2023-11-13 7:56 ` Cédric Le Goater
2023-11-13 7:59 ` Thomas Huth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).