Message ID | 20240909045505.236657-9-mkp@redhat.com |
---|---|
State | Accepted, archived |
Commit | ddd6490abdb41e9737ba1b0c7e42a6da7596326d |
Delegated to: | Eelco Chaudron |
Headers | show |
Series | Address clang analyze warnings. | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | success | apply and check: success |
ovsrobot/github-robot-_Build_and_Test | success | github build: passed |
On 9 Sep 2024, at 6:55, Mike Pattrick wrote: > The Clang analyzer has trouble tracking the pointer usage in > mrouter_get_lru and will report a use after free incorrectly. This patch > migrates to using standard ovs_list functions instead of directly > accessing the next member, which suppresses clang's warning. > > Acked-by: Eelco Chaudron <echaudro@redhat.com> > Signed-off-by: Mike Pattrick <mkp@redhat.com> Thanks for sending out the v3, the changes look good to me. Cheers, Eelco Acked-by: Eelco Chaudron <echaudro@redhat.com>
On Mon, Sep 09, 2024 at 12:55:05AM -0400, Mike Pattrick wrote: > The Clang analyzer has trouble tracking the pointer usage in > mrouter_get_lru and will report a use after free incorrectly. This patch > migrates to using standard ovs_list functions instead of directly > accessing the next member, which suppresses clang's warning. > > Acked-by: Eelco Chaudron <echaudro@redhat.com> > Signed-off-by: Mike Pattrick <mkp@redhat.com> Acked-by: Simon Horman <horms@ovn.org>
diff --git a/lib/mcast-snooping.c b/lib/mcast-snooping.c index bf25e6f20..b279c1229 100644 --- a/lib/mcast-snooping.c +++ b/lib/mcast-snooping.c @@ -653,7 +653,7 @@ mrouter_get_lru(const struct mcast_snooping *ms, OVS_REQ_RDLOCK(ms->rwlock) { if (!ovs_list_is_empty(&ms->mrouter_lru)) { - *m = mcast_mrouter_from_lru_node(ms->mrouter_lru.next); + *m = mcast_mrouter_from_lru_node(ovs_list_front(&ms->mrouter_lru)); return true; } else { *m = NULL; @@ -726,7 +726,7 @@ mcast_snooping_port_get(const struct ovs_list *list, struct mcast_port_bundle **f) { if (!ovs_list_is_empty(list)) { - *f = mcast_port_from_list_node(list->next); + *f = mcast_port_from_list_node(ovs_list_front(list)); return true; } else { *f = NULL;