File commoncpp-socketmemcpy.dif of Package commoncpp2

Index: commoncpp2-1.6.1/src/socket.cpp
===================================================================
--- commoncpp2-1.6.1.orig/src/socket.cpp
+++ commoncpp2-1.6.1/src/socket.cpp
@@ -1149,7 +1149,7 @@ Socket::Error Socket::join(const IPV4Mul
 		return error(errMulticastDisabled,"Multicast not enabled on socket");
 
 	getsockname(so, (struct sockaddr *)&myaddr, &len);
-	memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(&myaddr.sin_addr));
+	memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(myaddr.sin_addr));
 	group.imr_multiaddr = getaddress(ia);
 	setsockopt(so, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(group));
 	return errSuccess;
@@ -1170,7 +1170,7 @@ Socket::Error Socket::join(const IPV6Mul
 		return error(errMulticastDisabled,"Multicast not enabled on socket");
 
 	getsockname(so, (struct sockaddr *)&myaddr, &len);
-	memcpy(&group.ipv6mr_interface, &myaddr.sin6_addr, sizeof(&myaddr.sin6_addr));
+	group.ipv6mr_interface = myaddr.sin6_scope_id;
 	group.ipv6mr_multiaddr = getaddress(ia);
 	setsockopt(so, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, (char *)&group, sizeof(group));
 	return errSuccess;
@@ -1192,7 +1192,7 @@ Socket::Error Socket::drop(const IPV4Mul
 		return error(errMulticastDisabled,"Multicast not enabled on socket");
 
 	getsockname(so, (struct sockaddr *)&myaddr, &len);
-	memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(&myaddr.sin_addr));
+	memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(myaddr.sin_addr));
 	group.imr_multiaddr = getaddress(ia);
 	setsockopt(so, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *)&group, sizeof(group));
 	return errSuccess;
@@ -1213,7 +1213,7 @@ Socket::Error Socket::drop(const IPV6Mul
 		return error(errMulticastDisabled,"Multicast not enabled on socket");
 
 	getsockname(so, (struct sockaddr *)&myaddr, &len);
-	memcpy(&group.ipv6mr_interface, &myaddr.sin6_addr, sizeof(&myaddr.sin6_addr));
+	group.ipv6mr_interface = myaddr.sin6_scope_id;
 	group.ipv6mr_multiaddr = getaddress(ia);
 	setsockopt(so, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, (char *)&group, sizeof(group));
 	return errSuccess;
openSUSE Build Service is sponsored by