Fix for coverity (deal with getsockname failure)
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 17 Feb 2013 02:08:48 +0000 (21:08 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 17 Feb 2013 02:15:35 +0000 (21:15 -0500)
src/lib/dhcp.c

index c18cdd7..ccf65d5 100644 (file)
@@ -340,7 +340,11 @@ RADIUS_PACKET *fr_dhcp_recv(int sockfd)
        /*
         *      This should never fail...
         */
-       getsockname(sockfd, (struct sockaddr *) &dst, &sizeof_dst);
+       if (getsockname(sockfd, (struct sockaddr *) &dst, &sizeof_dst) < 0) {
+               fr_strerror_printf("getsockname failed: %s", strerror(errno));
+               rad_free(&packet);
+               return NULL;    
+       }
 #endif
        
        fr_sockaddr2ipaddr(&dst, sizeof_dst, &packet->dst_ipaddr, &port);