Re: [BUG 2.2/2.4/2.6] broken memsets in net/sk_mca.c (multicast)

From: Andrew Morton
Date: Sat Apr 10 2004 - 03:45:20 EST


Jean Delvare <khali@xxxxxxxxxxxx> wrote:
>
> I just found two very weird memsets in drivers/net/sk_mca.c.

yup.


--- 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));
+ 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);

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/