Messages in this thread Patch in this message | | | Date | Fri, 1 Apr 2022 10:09:26 -0700 | Subject | Re: [PATCH] net/ipv4: fix potential NULL dereference in sisfb_post_sis300() | From | Eric Dumazet <> |
| |
On 3/31/22 20:57, Haowen Bai wrote: > psin and psl could be null without checking null and return, so > we need to dereference after checking. > > Signed-off-by: Haowen Bai <baihaowen@meizu.com> > --- > net/ipv4/igmp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c > index 2ad3c7b..d400080 100644 > --- a/net/ipv4/igmp.c > +++ b/net/ipv4/igmp.c > @@ -2569,7 +2569,7 @@ int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf, > copy_to_user(optval, msf, IP_MSFILTER_SIZE(0))) { > return -EFAULT; > } > - if (len && > + if (len && psl &&
len can not be !0 here if len was 0
psl = rtnl_dereference(pmc->sflist);
if (!psl) {
count = 0;
->len == 0
> copy_to_user(&optval->imsf_slist_flex[0], psl->sl_addr, len)) > return -EFAULT; > return 0; > @@ -2608,7 +2608,7 @@ int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf, > count = psl ? psl->sl_count : 0; > copycount = count < gsf->gf_numsrc ? count : gsf->gf_numsrc; > gsf->gf_numsrc = count; > - for (i = 0; i < copycount; i++, p++) { > + for (i = 0; i < copycount && psin && psl; i++, p++) { > struct sockaddr_storage ss; > > psin = (struct sockaddr_in *)&ss;
Same here.
| |