| Submitter | Dan Carpenter |
|---|---|
| Date | Sept. 10, 2010, 11:58 a.m. |
| Message ID | <20100910115809.GF5959@bicker> |
| Download | mbox | patch |
| Permalink | /patch/64385/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: Dan Carpenter <error27@gmail.com> Date: Fri, 10 Sep 2010 13:58:10 +0200 > Smatch complains because we check whether "pch->chan" is NULL and then > dereference it unconditionally on the next line. Partly the reason this > bug was introduced is because code was too complicated. I've simplified > it a little. > > Signed-off-by: Dan Carpenter <error27@gmail.com> > --- > Compile tested only. Perhaps it would be better to set pch->speed to > zero? The comments say that zero implies the speed hasn't been set. I think how you've fixed it is OK, actually this whole MP rewrite could use some more auditing :-) Applied, thanks Dan. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index 6695a51..736b917 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c @@ -1314,8 +1314,13 @@ static int ppp_mp_explode(struct ppp *ppp, struct sk_buff *skb) hdrlen = (ppp->flags & SC_MP_XSHORTSEQ)? MPHDRLEN_SSN: MPHDRLEN; i = 0; list_for_each_entry(pch, &ppp->channels, clist) { - navail += pch->avail = (pch->chan != NULL); - pch->speed = pch->chan->speed; + if (pch->chan) { + pch->avail = 1; + navail++; + pch->speed = pch->chan->speed; + } else { + pch->avail = 0; + } if (pch->avail) { if (skb_queue_empty(&pch->file.xq) || !pch->had_frag) {
Smatch complains because we check whether "pch->chan" is NULL and then dereference it unconditionally on the next line. Partly the reason this bug was introduced is because code was too complicated. I've simplified it a little. Signed-off-by: Dan Carpenter <error27@gmail.com> --- Compile tested only. Perhaps it would be better to set pch->speed to zero? The comments say that zero implies the speed hasn't been set. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html