public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Andrew Morton <akpm@osdl.org>
Cc: Jean Delvare <khali@linux-fr.org>,
	linux-kernel@vger.kernel.org, aarnold@elsa.de
Subject: Re: [BUG 2.2/2.4/2.6] broken memsets in net/sk_mca.c (multicast)
Date: Sat, 10 Apr 2004 09:49:24 +0100	[thread overview]
Message-ID: <20040410094924.C32143@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20040410014040.48cb037b.akpm@osdl.org>; from akpm@osdl.org on Sat, Apr 10, 2004 at 01:40:40AM -0700

On Sat, Apr 10, 2004 at 01:40:40AM -0700, Andrew Morton wrote:
> Jean Delvare <khali@linux-fr.org> wrote:
> > I just found two very weird memsets in drivers/net/sk_mca.c.
> 
> yup.

Erm...

> --- 25/drivers/net/sk_mca.c~sk_mca-multicast-fix	2004-04-10 01:37:06.739989760 -0700
> +++ 25-akpm/drivers/net/sk_mca.c	2004-04-10 01:38:33.684772144 -0700
> @@ -996,14 +996,12 @@ static void skmca_set_multicast_list(str
>  	else
>  		block.Mode &= ~LANCE_INIT_PROM;
>  
> -	if (dev->flags & IFF_ALLMULTI) {	/* get all multicasts */
> -		memset(block.LAdrF, 8, 0xff);
> -	} else {		/* get selected/no multicasts */
> -
> +	memset(block.LAdrF, 0xff, sizeof(block.LAdrF));

Initialise the whole of block.LAdrF to all-bits-set, and then...

> +	if (!(dev->flags & IFF_ALLMULTI)) {
> +		/* get selected/no multicasts */
>  		struct dev_mc_list *mptr;
>  		int code;
>  
> -		memset(block.LAdrF, 8, 0x00);
>  		for (mptr = dev->mc_list; mptr != NULL; mptr = mptr->next) {
>  			code = GetHash(mptr->dmi_addr);
>  			block.LAdrF[(code >> 3) & 7] |= 1 << (code & 7);

Set bits, which are already set from the previous memset.

Surely this can't be right?

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

  reply	other threads:[~2004-04-10  8:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-10  8:20 [BUG 2.2/2.4/2.6] broken memsets in net/sk_mca.c (multicast) Jean Delvare
2004-04-10  8:40 ` Andrew Morton
2004-04-10  8:49   ` Russell King [this message]
2004-04-10  8:59     ` Andrew Morton
2004-04-10 14:49       ` Jean Delvare
2004-04-10 11:52 ` Denis Vlasenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040410094924.C32143@flint.arm.linux.org.uk \
    --to=rmk+lkml@arm.linux.org.uk \
    --cc=aarnold@elsa.de \
    --cc=akpm@osdl.org \
    --cc=khali@linux-fr.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox