All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 1/2] batctl: Fix static buffer for resolved mac adddress
@ 2013-10-15 16:01 Sven Eckelmann
  2013-10-15 16:01 ` [B.A.T.M.A.N.] [PATCH 2/2] batctl: Finish resolving of mac address early Sven Eckelmann
  2013-10-26 14:05 ` [B.A.T.M.A.N.] [PATCH 1/2] batctl: Fix static buffer for resolved mac adddress Marek Lindner
  0 siblings, 2 replies; 4+ messages in thread
From: Sven Eckelmann @ 2013-10-15 16:01 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: Sven Eckelmann

The resolve_mac_* functions are currently not reentrant-safe because they are
using ether_aton. Thus all functions returning a mac address in a similar way
must also ensure that their data is in a statically allocated buffer and not on
a stack.

resolve_mac_from_cache did that for the wrong buffer.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 functions.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/functions.c b/functions.c
index 9e03e72..959784b 100644
--- a/functions.c
+++ b/functions.c
@@ -630,8 +630,8 @@ static int resolve_mac_from_cache_parse(struct ndmsg *ndmsg, size_t len_payload,
 static struct ether_addr *resolve_mac_from_cache(int ai_family,
 						 const void *l3addr)
 {
-	static uint8_t l3addr_tmp[16];
-	struct ether_addr mac_tmp;
+	uint8_t l3addr_tmp[16];
+	static struct ether_addr mac_tmp;
 	struct ether_addr *mac_result = NULL;
 	void *buf = NULL;
 	size_t buflen;
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-10-26 14:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-15 16:01 [B.A.T.M.A.N.] [PATCH 1/2] batctl: Fix static buffer for resolved mac adddress Sven Eckelmann
2013-10-15 16:01 ` [B.A.T.M.A.N.] [PATCH 2/2] batctl: Finish resolving of mac address early Sven Eckelmann
2013-10-26 14:06   ` Marek Lindner
2013-10-26 14:05 ` [B.A.T.M.A.N.] [PATCH 1/2] batctl: Fix static buffer for resolved mac adddress Marek Lindner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.