|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: New Defects reported by Coverity Scan for XenProject
On 05.05.2024 11:54, scan-admin@xxxxxxxxxxxx wrote:
> Hi,
>
> Please find the latest report on new defect(s) introduced to XenProject found
> with Coverity Scan.
>
> 2 new defect(s) introduced to XenProject found with Coverity Scan.
> 1 defect(s), reported by Coverity Scan earlier, were marked fixed in the
> recent build analyzed by Coverity Scan.
>
> New defect(s) Reported-by: Coverity Scan
> Showing 2 of 2 defect(s)
>
>
> ** CID 1596837: (USE_AFTER_FREE)
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
> /xen/common/gzip/inflate.c: 935 in inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 935 in
> inflate_dynamic()
> /xen/common/gzip/inflate.c: 935 in inflate_dynamic()
> /xen/common/gzip/inflate.c: 935 in inflate_dynamic()
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 935 in
> inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
>
>
> ________________________________________________________________________________________________________
> *** CID 1596837: (USE_AFTER_FREE)
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
> 937 goto out;
> 938 }
> 939
> 940 DEBG("dyn6 ");
> 941
> 942 /* decompress until an end-of-block code */
>>>> CID 1596837: (USE_AFTER_FREE)
>>>> Calling "inflate_codes" dereferences freed pointer "tl".
> 943 if (inflate_codes(tl, td, bl, bd)) {
> 944 ret = 1;
> 945 goto out;
> 946 }
While first I thought the tool may be confused by the earlier huft_free()
(matching an earlier huft_build()), ...
> ** CID 1596836: (USE_AFTER_FREE)
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
> /tools/firmware/xen-dir/xen-root/xen/common/gzip/inflate.c: 943 in
> inflate_dynamic()
>
>
> ________________________________________________________________________________________________________
> *** CID 1596836: (USE_AFTER_FREE)
> /xen/common/gzip/inflate.c: 943 in inflate_dynamic()
> 937 goto out;
> 938 }
> 939
> 940 DEBG("dyn6 ");
> 941
> 942 /* decompress until an end-of-block code */
>>>> CID 1596836: (USE_AFTER_FREE)
>>>> Calling "inflate_codes" dereferences freed pointer "td".
> 943 if (inflate_codes(tl, td, bl, bd)) {
> 944 ret = 1;
> 945 goto out;
> 946 }
... no dual usage exists for td. Hence I'm utterly confused as to what the
tool is "thinking". In fact it looks like there is an opposite issue in
both inflate_fixed() and inflate_dynamic(): tl and td are leaked when
inflate_codes() fails. I guess I'll make a patch ...
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |