diff options
author | Jun Zhao <barryjzhao@tencent.com> | 2019-11-15 19:10:47 +0800 |
---|---|---|
committer | Jun Zhao <barryjzhao@tencent.com> | 2019-11-17 09:09:38 +0800 |
commit | 487e7e9670032465e1850d54fd58c5248aa50be9 (patch) | |
tree | 900543e13fdcd5bde68a55fd83e429ab933a17d0 /libavformat/rtmpproto.c | |
parent | 4fb6ce27f0880599f0504ce4234b4de4fa87ad74 (diff) | |
download | ffmpeg-487e7e9670032465e1850d54fd58c5248aa50be9.tar.gz |
lavf/rtmpproto: fix the playpath truncation if the len > 512
fix the playpath truncation if the len > 512
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Found-by: liuwenhuang <liuwenhuang@tencent.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
Diffstat (limited to 'libavformat/rtmpproto.c')
-rw-r--r-- | libavformat/rtmpproto.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index 42c6b94ea0..5274993ec6 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -48,7 +48,6 @@ #endif #define APP_MAX_LENGTH 1024 -#define PLAYPATH_MAX_LENGTH 512 #define TCURL_MAX_LENGTH 1024 #define FLASHVER_MAX_LENGTH 64 #define RTMP_PKTDATA_DEFAULT_SIZE 4096 @@ -2746,7 +2745,10 @@ reconnect: } if (!rt->playpath) { - rt->playpath = av_malloc(PLAYPATH_MAX_LENGTH); + int max_len = 1; + if (fname) + max_len = strlen(fname) + 5; // add prefix "mp4:" + rt->playpath = av_malloc(max_len); if (!rt->playpath) { ret = AVERROR(ENOMEM); goto fail; @@ -2763,7 +2765,7 @@ reconnect: fname[len - 4] = '\0'; rt->playpath[0] = 0; } - av_strlcat(rt->playpath, fname, PLAYPATH_MAX_LENGTH); + av_strlcat(rt->playpath, fname, max_len); } else { rt->playpath[0] = '\0'; } |