]> granicus.if.org Git - libtirpc/commitdiff
Fix incorrect sizeof() in __rpc_getbroadifs
authorOlaf Kirch <okir@suse.de>
Tue, 2 Sep 2008 16:09:39 +0000 (12:09 -0400)
committerSteve Dickson <steved@redhat.com>
Tue, 2 Sep 2008 16:09:39 +0000 (12:09 -0400)
__rpc_getbroadifs returns bad broadcast addresses on 32bit
machines because when copying the broadcast addresses, ite
applies the sizeof() operator to a pointer to a sockaddr,
rather than the sockaddr itself.

Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
src/clnt_bcast.c

index a96db45cef850d1d3bfe031da004c561cd975c0d..aa2b8f2fc60ab651f7bdeb8ffe6360f62ecd3b96 100644 (file)
@@ -163,7 +163,7 @@ __rpc_getbroadifs(int af, int proto, int socktype, broadlist_t *list)
                  /*    memcpy(&bip->broadaddr, ifap->ifa_broadaddr,
                        (size_t)ifap->ifa_broadaddr->sa_len);*/
                        memcpy(&bip->broadaddr, ifap->ifa_broadaddr,
-                       (size_t)sizeof(ifap->ifa_broadaddr));
+                                       sizeof(bip->broadaddr));
                        sin = (struct sockaddr_in *)(void *)&bip->broadaddr;
                        sin->sin_port =
                            ((struct sockaddr_in *)