diff options
author | Martin Storsjö <martin@martin.st> | 2015-03-19 09:28:25 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2015-03-19 10:25:22 +0200 |
commit | 8dc72eeaf647736c287b59a3856a11904bedd58b (patch) | |
tree | 8c821a0ecf5dc9c58d3cfd572a0e6923fc61eb92 /libavformat/udp.c | |
parent | 8692d74b7364b405d7939c0ed347e8a2815193a7 (diff) | |
download | ffmpeg-8dc72eeaf647736c287b59a3856a11904bedd58b.tar.gz |
udp: Fix crashes after adding AVOptions
Add a missing AVClass member, check whether localaddr is null.
(Previously, localaddr was always a local stack buffer, while it
now also can be an avoption string which can be null.)
This fixes crashes when not passing any localaddr parameter, since
66028b7ba.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/udp.c')
-rw-r--r-- | libavformat/udp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/udp.c b/libavformat/udp.c index e175a4b541..321ed29901 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -42,6 +42,7 @@ #endif typedef struct UDPContext { + const AVClass *class; int udp_fd; int ttl; int buffer_size; @@ -293,7 +294,7 @@ static int udp_socket_create(UDPContext *s, struct sockaddr_storage *addr, if (((struct sockaddr *) &s->dest_addr)->sa_family) family = ((struct sockaddr *) &s->dest_addr)->sa_family; - res0 = udp_resolve_host(localaddr[0] ? localaddr : NULL, s->local_port, + res0 = udp_resolve_host((localaddr && localaddr[0]) ? localaddr : NULL, s->local_port, SOCK_DGRAM, family, AI_PASSIVE); if (res0 == 0) goto fail; |