The branch, release/8.0 has been updated
via d1f31a829d018a3d9d46da93480182e565762000 (commit)
via 1e56c51d3b4cb17c64dd6adf646fd87bd22d6de6 (commit)
via 45fcd5567a4402c172aa7e92ad082a686dcddb83 (commit)
from 558994b051424534fc598d7569fe2b896f103110 (commit)
- Log -----------------------------------------------------------------
commit d1f31a829d018a3d9d46da93480182e565762000
Author: Marvin Scholz <[email protected]>
AuthorDate: Fri Aug 22 21:41:26 2025 +0200
Commit: Marvin Scholz <[email protected]>
CommitDate: Thu Oct 16 15:57:19 2025 +0200
avformat/rtsp: fix leading space in RTSP reason
When parsing the RTSP message reason, the whole remainder
after parsing the status code was used, which would lead to
a leading space in the parsed reason string.
(cherry picked from commit e63e040f0cef2d6af2fb57aefa6250fc450fa049)
Signed-off-by: Marvin Scholz <[email protected]>
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 13507d1858..d601d63a89 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1274,6 +1274,7 @@ start:
if (!strncmp(buf1, "RTSP/", 5)) {
get_word(buf1, sizeof(buf1), &p);
reply->status_code = atoi(buf1);
+ p += strspn(p, SPACE_CHARS);
av_strlcpy(reply->reason, p, sizeof(reply->reason));
} else {
av_strlcpy(reply->reason, buf1, sizeof(reply->reason)); //
method
commit 1e56c51d3b4cb17c64dd6adf646fd87bd22d6de6
Author: Marvin Scholz <[email protected]>
AuthorDate: Fri Aug 22 16:50:34 2025 +0200
Commit: Marvin Scholz <[email protected]>
CommitDate: Thu Oct 16 15:57:19 2025 +0200
avformat/rtsp: do not log invalid values
When reading fails the first time, ch would be uninitialized and
printed in the log message. Instead check for an error early and
log it properly.
(cherry picked from commit 2ed47ab72509bbee60288d245a0aebb7eb05e41a)
Signed-off-by: Marvin Scholz <[email protected]>
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 10355b89b8..13507d1858 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1239,9 +1239,12 @@ start:
q = buf;
for (;;) {
ret = ffurl_read_complete(rt->rtsp_hd, &ch, 1);
+ if (ret != 1) {
+ ret = (ret < 0) ? ret : AVERROR(EIO);
+ av_log(s, AV_LOG_WARNING, "Failed reading RTSP data: %s\n",
av_err2str(ret));
+ return ret;
+ }
av_log(s, AV_LOG_TRACE, "ret=%d c=%02x [%c]\n", ret, ch, ch);
- if (ret != 1)
- return ret < 0 ? ret : AVERROR(EIO);
if (ch == '\n')
break;
if (ch == '$' && q == buf) {
commit 45fcd5567a4402c172aa7e92ad082a686dcddb83
Author: Marvin Scholz <[email protected]>
AuthorDate: Thu May 22 20:14:49 2025 +0200
Commit: Marvin Scholz <[email protected]>
CommitDate: Thu Oct 16 15:57:19 2025 +0200
avformat/http: Handle IPv6 Zone ID in hostname
When using a literal IPv6 address as hostname, it can contain a Zone ID
especially in the case of link-local addresses. Sending this to the
server in the Host header is not useful to the server and in some cases
servers refuse such requests.
To prevent any such issues, strip the Zone ID from the address if it's
an IPv6 address. This also removes it for the Cookies lookup.
Based on a patch by: Daniel N Pettersson <[email protected]>
(cherry picked from commit 5cb6d2221a6d4c07453b6c301ecfcaed48402680)
Signed-off-by: Marvin Scholz <[email protected]>
diff --git a/libavformat/http.c b/libavformat/http.c
index 0d4077512b..49d750b512 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -24,6 +24,7 @@
#include "config.h"
#include "config_components.h"
+#include <string.h>
#include <time.h>
#if CONFIG_ZLIB
#include <zlib.h>
@@ -214,7 +215,7 @@ static int http_open_cnx_internal(URLContext *h,
AVDictionary **options)
const char *path, *proxy_path, *lower_proto = "tcp", *local_path;
char *env_http_proxy, *env_no_proxy;
char *hashmark;
- char hostname[1024], hoststr[1024], proto[10];
+ char hostname[1024], hoststr[1024], proto[10], tmp_host[1024];
char auth[1024], proxyauth[1024] = "";
char path1[MAX_URL_SIZE], sanitized_path[MAX_URL_SIZE + 1];
char buf[1024], urlbuf[MAX_URL_SIZE];
@@ -224,7 +225,14 @@ static int http_open_cnx_internal(URLContext *h,
AVDictionary **options)
av_url_split(proto, sizeof(proto), auth, sizeof(auth),
hostname, sizeof(hostname), &port,
path1, sizeof(path1), s->location);
- ff_url_join(hoststr, sizeof(hoststr), NULL, NULL, hostname, port, NULL);
+
+ av_strlcpy(tmp_host, hostname, sizeof(tmp_host));
+ // In case of an IPv6 address, we need to strip the Zone ID,
+ // if any. We do it at the first % sign, as percent encoding
+ // can be used in the Zone ID itself.
+ if (strchr(tmp_host, ':'))
+ tmp_host[strcspn(tmp_host, "%")] = '\0';
+ ff_url_join(hoststr, sizeof(hoststr), NULL, NULL, tmp_host, port, NULL);
env_http_proxy = getenv_utf8("http_proxy");
proxy_path = s->http_proxy ? s->http_proxy : env_http_proxy;
-----------------------------------------------------------------------
Summary of changes:
libavformat/http.c | 12 ++++++++++--
libavformat/rtsp.c | 8 ++++++--
2 files changed, 16 insertions(+), 4 deletions(-)
hooks/post-receive
--
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]