From 949aa30befe327c320a3fe2921c1419c6eb556e8 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 14 Nov 2013 10:39:17 -0800 Subject: [PATCH] ETHER: Fix bpf filter generation to not generate an invalid filter if only multicast addresses were provided --- sim_ether.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sim_ether.c b/sim_ether.c index d9fed3a2..85d24096 100644 --- a/sim_ether.c +++ b/sim_ether.c @@ -3031,6 +3031,11 @@ if ((addr_count > 0) && (dev->reflections > 0)) { sprintf(&buf2[strlen(buf2)], "%s(ether src %s)", (*buf2) ? " or " : "", mac); } sprintf (&buf[strlen(buf)], ")"); + if (1 == strlen(buf2)) { /* all addresses were multicast? */ + buf[strlen(buf)-6] = '\0'; /* Remove "not ()" */ + if (strlen(buf) > 0) + buf[strlen(buf)-5] = '\0'; /* remove " and " */ + } } if (strlen(buf) > 0) sprintf(&buf[strlen(buf)], ")");