[vlc-commits] sdp: fix null format string passed to vsnprintf
Barmand Toumiret
git at videolan.org
Tue Jul 23 19:49:12 CEST 2019
vlc | branch: master | Barmand Toumiret <delthas at dille.cc> | Wed Jul 24 00:09:44 2019 +0800| [787a20665af9e075cec39e03408b42b4e9032fe7] | committer: Rémi Denis-Courmont
sdp: fix null format string passed to vsnprintf
When rtcp-mux is used, sdp_AddAttribute is called with a null
format string, which means to write an SDP property attribute
(without value), which is a different from an empty format string,
that writes an SDP value attribute with an empty value.
This fixes vsdp_AddAttribute so that it correctly writes a
property attribute to the SDP description rather than incorrectly
calling vsnprintf with a null format string (an undefined behaviour
which segfaults on Windows) and writing a value attribute with
an empty value.
Signed-off-by: Rémi Denis-Courmont <remi at remlab.net>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=787a20665af9e075cec39e03408b42b4e9032fe7
---
src/stream_output/sdp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/stream_output/sdp.c b/src/stream_output/sdp.c
index c57c6117fc..dc13ec0601 100644
--- a/src/stream_output/sdp.c
+++ b/src/stream_output/sdp.c
@@ -93,6 +93,11 @@ static bool IsSDPString (const char *str)
static void vsdp_AddAttribute(struct vlc_memstream *restrict stream,
const char *name, const char *fmt, va_list ap)
{
+ if (fmt == NULL)
+ {
+ vlc_memstream_printf(stream, "a=%s\r\n", name);
+ return;
+ }
vlc_memstream_printf(stream, "a=%s:", name);
vlc_memstream_vprintf(stream, fmt, ap);
vlc_memstream_puts(stream, "\r\n");
More information about the vlc-commits
mailing list