[FFmpeg-devel] Avoids duplicated slashes in the RTSP URL. Signed-off-by: Frederic Pillonel <fpi@gmx.ch>

Submitted by fpi@gmx.ch on Jan. 22, 2019, 7:18 p.m.

Details

Message ID 20190122191833.27072-1-fpi@gmx.ch
State New
Headers show

Commit Message

fpi@gmx.ch Jan. 22, 2019, 7:18 p.m.
From: Frederic Pillonel <fpi@gmx.ch>

---
 libavformat/rtsp.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Michael Niedermayer Jan. 22, 2019, 8:49 p.m.
On Tue, Jan 22, 2019 at 07:18:33PM +0000, fpi@gmx.ch wrote:
> From: Frederic Pillonel <fpi@gmx.ch>
> 
> ---
>  libavformat/rtsp.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
> index ceb770a3a4..20f63e0e01 100644
> --- a/libavformat/rtsp.c
> +++ b/libavformat/rtsp.c
> @@ -548,9 +548,10 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
>                               NULL, NULL, 0, p);
>                  if (proto[0] == '\0') {
>                      /* relative control URL */
> -                    if (rtsp_st->control_url[strlen(rtsp_st->control_url)-1]!='/')
> -                    av_strlcat(rtsp_st->control_url, "/",
> -                               sizeof(rtsp_st->control_url));
> +                    if (rtsp_st->control_url[strlen(rtsp_st->control_url)-1]!='/' &&
> +                                (sizeof(p) > 0 && p[0]!='/'))

what is sizeof(p) > 0 supposed to check for ?
p is a pointer which cannot have a size of 0

also The commit message should start with a prefix specifying the area or
file changed

thx

[...]

Patch hide | download patch | download mbox

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index ceb770a3a4..20f63e0e01 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -548,9 +548,10 @@  static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
                              NULL, NULL, 0, p);
                 if (proto[0] == '\0') {
                     /* relative control URL */
-                    if (rtsp_st->control_url[strlen(rtsp_st->control_url)-1]!='/')
-                    av_strlcat(rtsp_st->control_url, "/",
-                               sizeof(rtsp_st->control_url));
+                    if (rtsp_st->control_url[strlen(rtsp_st->control_url)-1]!='/' &&
+                                (sizeof(p) > 0 && p[0]!='/'))
+                        av_strlcat(rtsp_st->control_url, "/",
+                                    sizeof(rtsp_st->control_url));
                     av_strlcat(rtsp_st->control_url, p,
                                sizeof(rtsp_st->control_url));
                 } else