From: RĂ©mi Denis-Courmont Date: Sat, 10 Feb 2007 18:16:21 +0000 (+0000) Subject: Fix a bunch of bugs X-Git-Tag: 0.9.0-test0~8653 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=ea7140932b3a922b393914a91aee7d6fa84d2a89;p=vlc Fix a bunch of bugs --- diff --git a/src/stream_output/sdp.c b/src/stream_output/sdp.c index 38c32ff3f3..95734f9ee3 100644 --- a/src/stream_output/sdp.c +++ b/src/stream_output/sdp.c @@ -34,6 +34,10 @@ static char *AddressToSDP (const struct sockaddr *addr, socklen_t addrlen, char *buf) { + if (addrlen < offsetof (struct sockaddr, sa_family) + + sizeof (addr->sa_family)) + return NULL; + const char *ttl = NULL; strcpy (buf, "IN IP* "); @@ -57,7 +61,7 @@ char *AddressToSDP (const struct sockaddr *addr, socklen_t addrlen, char *buf) return NULL; } - if (vlc_getnameinfo (addr, addrlen, buf + 4, MAXSDPADDRESS - 4, NULL, + if (vlc_getnameinfo (addr, addrlen, buf + 7, MAXSDPADDRESS - 7, NULL, NI_NUMERICHOST)) return NULL; @@ -102,8 +106,8 @@ char *StartSDP (const char *name, const char *description, const char *url, if (!IsSDPString (name) || !IsSDPString (description) || !IsSDPString (url) || !IsSDPString (email) || !IsSDPString (phone) - || (AddressToSDP ((struct sockaddr *)&orig, origlen, machine) == NULL) - || (AddressToSDP ((struct sockaddr *)&addr, addrlen, conn) == NULL)) + || (AddressToSDP ((struct sockaddr *)orig, origlen, machine) == NULL) + || (AddressToSDP ((struct sockaddr *)addr, addrlen, conn) == NULL)) return NULL; if (asprintf (&sdp, "v=0" @@ -115,7 +119,7 @@ char *StartSDP (const char *name, const char *description, const char *url, "%s%s" // optional phone number "\r\nc=%s" // bandwidth not specified - "\r\nt= 0 0" // one dummy time span + "\r\nt=0 0" // one dummy time span // no repeating // no time zone adjustment (silly idea anyway) // no encryption key (deprecated)