[haiku-commits] haiku: hrev54748 - src/libs/compat/freebsd_network

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 2 Dec 2020 02:40:19 -0500 (EST)

hrev54748 adds 1 changeset to branch 'master'
old head: a1c9aa9d90369aa5748e5ce31e68cdd062c2ccf2
new head: b943b993c7d76d26bf5dc361410368de96427847
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=b943b993c7d7+%5Ea1c9aa9d9036

----------------------------------------------------------------------------

b943b993c7d7: freebsd_network: Use user_memcpy() for 
ETHER_ADDMULTI/ETHER_REMMULTI
  
  Change-Id: Id0a7e50f9ae38bff42faf1d6c4a62f702347bda3
  Reviewed-on: https://review.haiku-os.org/c/haiku/+/3446
  Reviewed-by: waddlesplash <waddlesplash@xxxxxxxxx>

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev54748
Commit:      b943b993c7d76d26bf5dc361410368de96427847
URL:         https://git.haiku-os.org/haiku/commit/?id=b943b993c7d7
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Nov 30 18:36:12 2020 UTC
Committer:   Adrien Destugues <pulkomandy@xxxxxxxxx>
Commit-Date: Wed Dec  2 07:40:16 2020 UTC

----------------------------------------------------------------------------

1 file changed, 4 insertions(+), 1 deletion(-)
src/libs/compat/freebsd_network/device_hooks.c | 5 ++++-

----------------------------------------------------------------------------

diff --git a/src/libs/compat/freebsd_network/device_hooks.c 
b/src/libs/compat/freebsd_network/device_hooks.c
index 565f2db2b1..7a5331d5a3 100644
--- a/src/libs/compat/freebsd_network/device_hooks.c
+++ b/src/libs/compat/freebsd_network/device_hooks.c
@@ -244,10 +244,13 @@ compat_control(void *cookie, uint32 op, void *arg, size_t 
length)
 
                        if ((ifp->if_flags & IFF_MULTICAST) == 0)
                                return B_NOT_SUPPORTED;
+                       if (length != ETHER_ADDR_LEN)
+                               return B_BAD_VALUE;
 
                        memset(&address, 0, sizeof(address));
                        address.sdl_family = AF_LINK;
-                       memcpy(LLADDR(&address), arg, ETHER_ADDR_LEN);
+                       if (user_memcpy(LLADDR(&address), arg, ETHER_ADDR_LEN) 
< B_OK)
+                               return B_BAD_ADDRESS;
 
                        if (op == ETHER_ADDMULTI)
                                return if_addmulti(ifp, (struct sockaddr 
*)&address, NULL);


Other related posts:

  • » [haiku-commits] haiku: hrev54748 - src/libs/compat/freebsd_network - Adrien Destugues