@@ -1001,6 +1001,7 @@ int create_multicast_socket(const char *group, const char *port,
10011001 debug_write (errstring );
10021002#endif
10031003 close (sfd );
1004+ freeaddrinfo (result );
10041005 errno = errno_saved ;
10051006
10061007 return -1 ;
@@ -1021,6 +1022,7 @@ int create_multicast_socket(const char *group, const char *port,
10211022 if (-1 == check_error (ioctl (sfd , SIOCGIFINDEX , & interface ))) {
10221023 int errno_saved = errno ;
10231024 close (sfd );
1025+ freeaddrinfo (result );
10241026 errno = errno_saved ;
10251027 return -1 ;
10261028 }
@@ -1032,13 +1034,15 @@ int create_multicast_socket(const char *group, const char *port,
10321034 & mreq4 , sizeof (struct ip_mreqn )))) {
10331035 int errno_saved = errno ;
10341036 close (sfd );
1037+ freeaddrinfo (result );
10351038 errno = errno_saved ;
10361039 return -1 ;
10371040 }
10381041 if (-1 == check_error (setsockopt (sfd , IPPROTO_IP , IP_MULTICAST_IF ,
10391042 & mreq4 , sizeof (struct ip_mreqn )))) {
10401043 int errno_saved = errno ;
10411044 close (sfd );
1045+ freeaddrinfo (result );
10421046 errno = errno_saved ;
10431047 return -1 ;
10441048 }
@@ -1059,6 +1063,7 @@ int create_multicast_socket(const char *group, const char *port,
10591063 if (-1 == check_error (ioctl (sfd , SIOCGIFINDEX , & interface ))) {
10601064 int errno_saved = errno ;
10611065 close (sfd );
1066+ freeaddrinfo (result );
10621067 errno = errno_saved ;
10631068 return -1 ;
10641069 }
@@ -1070,6 +1075,7 @@ int create_multicast_socket(const char *group, const char *port,
10701075 & mreq6 , sizeof (struct ipv6_mreq )))) {
10711076 int errno_saved = errno ;
10721077 close (sfd );
1078+ freeaddrinfo (result );
10731079 errno = errno_saved ;
10741080 return -1 ;
10751081 }
@@ -1078,11 +1084,13 @@ int create_multicast_socket(const char *group, const char *port,
10781084 sizeof (mreq6 .ipv6mr_interface )))) {
10791085 int errno_saved = errno ;
10801086 close (sfd );
1087+ freeaddrinfo (result );
10811088 errno = errno_saved ;
10821089 return -1 ;
10831090 }
10841091 }
10851092
1093+ freeaddrinfo (result );
10861094 return sfd ;
10871095}
10881096
0 commit comments