A new "no (more) symbol" path there was lacking a necessary unlock.
Fixes: d3b637fba31b ("symbols: arrange to know where functions end")
Coverity ID: 1665212
Signed-off-by: Jan Beulich <jbeulich@suse.com>
--- a/xen/common/symbols.c
+++ b/xen/common/symbols.c
@@ -202,7 +202,10 @@ int xensyms_read(uint32_t *symnum, char
{
++next_offset;
if ( ++*symnum == symbols_num_addrs )
+ {
+ spin_unlock(&symbols_mutex);
goto no_symbol;
+ }
}
*type = symbols_get_symbol_type(next_offset);
On 08/09/2025 10:22 am, Jan Beulich wrote: > A new "no (more) symbol" path there was lacking a necessary unlock. > > Fixes: d3b637fba31b ("symbols: arrange to know where functions end") > Coverity ID: 1665212 > Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Hi Jan, On Mon, Sep 8, 2025 at 12:22 PM Jan Beulich <jbeulich@suse.com> wrote: > > A new "no (more) symbol" path there was lacking a necessary unlock. > > Fixes: d3b637fba31b ("symbols: arrange to know where functions end") > Coverity ID: 1665212 > Signed-off-by: Jan Beulich <jbeulich@suse.com> > > --- a/xen/common/symbols.c > +++ b/xen/common/symbols.c > @@ -202,7 +202,10 @@ int xensyms_read(uint32_t *symnum, char > { > ++next_offset; > if ( ++*symnum == symbols_num_addrs ) > + { > + spin_unlock(&symbols_mutex); > goto no_symbol; > + } > } > > *type = symbols_get_symbol_type(next_offset); > Reviewed-by: Mykola Kvach <mykola_kvach@epam.com> Best regards, Mykola
© 2016 - 2025 Red Hat, Inc.