[git commit] udhcpc6: additional fix for ppp interface type

Denys Vlasenko vda.linux at googlemail.com
Tue Jan 23 15:46:31 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=30b290f996366e9370eadc0321cb59ec4eb85181
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Invent a fictitious MAC only once

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/udhcp/d6_socket.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/networking/udhcp/d6_socket.c b/networking/udhcp/d6_socket.c
index f9082ee..315c8d9 100644
--- a/networking/udhcp/d6_socket.c
+++ b/networking/udhcp/d6_socket.c
@@ -69,8 +69,12 @@ int FAST_FUNC d6_read_interface(const char *interface, int *ifindex, struct in6_
 		if (ioctl(fd, SIOCGIFINDEX, &ifr) == 0) {
 			*ifindex = ifr.ifr_ifindex;
 			log2("ifindex %d", *ifindex);
-			((uint32_t*)mac)[0] = rand();
-			((uint16_t*)mac)[2] = rand();
+			if (((uint32_t*)mac)[0] == 0) {
+				/* invent a fictitious MAC (once) */
+				((uint32_t*)mac)[0] = rand();
+				((uint16_t*)mac)[2] = rand();
+				mac[0] &= 0xfc; /* make sure it's not bcast */
+			}
 			retval &= (3 - (1<<0));
 		}
 		close(fd);


More information about the busybox-cvs mailing list