char sbuf[NI_MAXSERV];
char hbuf[NI_MAXHOST];
struct addrinfo *res0 = NULL, *res = NULL;
+ int family = AF_UNSPEC;
- res0 = udp_ipv6_resolve_host(0, s->local_port, SOCK_DGRAM, AF_UNSPEC, AI_PASSIVE);
+ if (((struct sockaddr *) &s->dest_addr)->sa_family)
+ family = ((struct sockaddr *) &s->dest_addr)->sa_family;
+ res0 = udp_ipv6_resolve_host(0, s->local_port, SOCK_DGRAM, family, AI_PASSIVE);
if (res0 == 0)
goto fail;
for (res = res0; res; res=res->ai_next) {
is_output = (flags & URL_WRONLY);
- s = av_malloc(sizeof(UDPContext));
+ s = av_mallocz(sizeof(UDPContext));
if (!s)
return AVERROR(ENOMEM);