* [gatesgarth][PATCH 00/14] patch review request
@ 2021-01-14 16:09 Anuj Mittal
2021-01-14 16:09 ` [gatesgarth][PATCH 01/14] license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS Anuj Mittal
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw)
To: openembedded-core
Please review these next set of changes for gatesgarth. a-full on
autobuilder failed while executing shutdown test case for qemuppc
which is a known intermittent issue and doesn't look related to these
changes.
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/1753
Thanks,
Anuj
The following changes since commit 7aa1ae139b9131faff04c0ed156fd8efcde114f6:
bitbake.conf: Prevent pyc file generation in pseudo context (2021-01-07 16:06:52 +0800)
are available in the Git repository at:
git://push.openembedded.org/openembedded-core-contrib anujm/gatesgarth
Anuj Mittal (1):
systemd: upgrade 246.6 -> 246.9
Bruce Ashfield (1):
linux-yocto/5.4: update to v5.4.87
Khairul Rohaizzat Jamaluddin (2):
curl: Fix CVE-2020-8284, CVE-2020-8285, CVE-2020-8286
ffmpeg: Fix CVE-2020-35964, CVE-2020-35965
Martin Jansa (1):
license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to
PSEUDO_IGNORE_PATHS
Paul Barker (1):
selftest: Add argument to keep build dir
Richard Purdie (4):
bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS
pseudo: Drop patches merged into upstream branch
pseudo: Add lchmod wrapper
pseudo: Update for arm host and memleak fixes/cleanup
Scott Murray (1):
glibc: CVE-2019-25013
Tomasz Dziendzielski (1):
pseudo: Update to print PSEUDO_LOGFILE in abort message on path
mismatches
Wang Mingyu (2):
mobile-broadband-provider-info: upgrade 20190618 ->20201225
binutils: upgrade 2.35 -> 2.35.1
meta/classes/license.bbclass | 1 +
meta/conf/bitbake.conf | 2 +-
meta/lib/oeqa/selftest/context.py | 17 +-
.../mobile-broadband-provider-info_git.bb | 4 +-
.../glibc/glibc/CVE-2019-25013.patch | 137 ++
meta/recipes-core/glibc/glibc_2.32.bb | 1 +
...md-boot_246.2.bb => systemd-boot_246.9.bb} | 0
...md-conf_246.1.bb => systemd-conf_246.9.bb} | 0
meta/recipes-core/systemd/systemd.inc | 2 +-
...tall-dependency-links-at-install-tim.patch | 36 +-
...002-don-t-use-glibc-specific-qsort_r.patch | 55 +-
.../{systemd_246.6.bb => systemd_246.9.bb} | 0
...{binutils-2.35.inc => binutils-2.35.1.inc} | 6 +-
...5.bb => binutils-cross-canadian_2.35.1.bb} | 0
....bb => binutils-cross-testsuite_2.35.1.bb} | 0
...cross_2.35.bb => binutils-cross_2.35.1.bb} | 0
...dk_2.35.bb => binutils-crosssdk_2.35.1.bb} | 0
.../{binutils_2.35.bb => binutils_2.35.1.bb} | 0
meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +-
.../linux/linux-yocto-rt_5.4.bb | 6 +-
.../linux/linux-yocto-tiny_5.4.bb | 8 +-
meta/recipes-kernel/linux/linux-yocto_5.4.bb | 22 +-
.../ffmpeg/ffmpeg/CVE-2020-35964.patch | 75 +
.../ffmpeg/ffmpeg/CVE-2020-35965.patch | 35 +
.../recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb | 2 +
...02-remove-void-protop-create-union-p.patch | 1609 +++++++++++++++++
.../curl/curl/CVE-2020-8284.patch | 210 +++
.../curl/curl/CVE-2020-8285.patch | 257 +++
.../curl/curl/CVE-2020-8286.patch | 131 ++
meta/recipes-support/curl/curl_7.72.0.bb | 4 +
30 files changed, 2547 insertions(+), 75 deletions(-)
create mode 100644 meta/recipes-core/glibc/glibc/CVE-2019-25013.patch
rename meta/recipes-core/systemd/{systemd-boot_246.2.bb => systemd-boot_246.9.bb} (100%)
rename meta/recipes-core/systemd/{systemd-conf_246.1.bb => systemd-conf_246.9.bb} (100%)
rename meta/recipes-core/systemd/{systemd_246.6.bb => systemd_246.9.bb} (100%)
rename meta/recipes-devtools/binutils/{binutils-2.35.inc => binutils-2.35.1.inc} (96%)
rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.35.bb => binutils-cross-canadian_2.35.1.bb} (100%)
rename meta/recipes-devtools/binutils/{binutils-cross-testsuite_2.35.bb => binutils-cross-testsuite_2.35.1.bb} (100%)
rename meta/recipes-devtools/binutils/{binutils-cross_2.35.bb => binutils-cross_2.35.1.bb} (100%)
rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.35.bb => binutils-crosssdk_2.35.1.bb} (100%)
rename meta/recipes-devtools/binutils/{binutils_2.35.bb => binutils_2.35.1.bb} (100%)
create mode 100644 meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch
create mode 100644 meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
create mode 100644 meta/recipes-support/curl/curl/0002-remove-void-protop-create-union-p.patch
create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8284.patch
create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8285.patch
create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8286.patch
--
2.29.2
^ permalink raw reply [flat|nested] 15+ messages in thread* [gatesgarth][PATCH 01/14] license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 02/14] curl: Fix CVE-2020-8284, CVE-2020-8285, CVE-2020-8286 Anuj Mittal ` (12 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Martin Jansa <martin.jansa@gmail.com> * now without ${COREBASE}/meta in PSEUDO_IGNORE_PATHS after: 73d538f207 bitbake.conf: Prevent pyc file generation in pseudo context the do_package tasks are failing when LICENSE_CREATE_PACKAGE is enabled pseudo.log shows that it's because of license texts copied from ${COREBASE}/meta: path mismatch [46 links]: ino 96733640 db '/OE/build/tmp-glibc/work/all-oe-linux/foo/1.0/image/usr/share/licenses/foo/generic_Apache-2.0' req '/OE/build/openembedded-core/meta/files/common-licenses/Apache-2.0'. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/classes/license.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index f90176d6c0..dc91118340 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -31,6 +31,7 @@ python do_populate_lic() { f.write("%s: %s\n" % (key, info[key])) } +PSEUDO_IGNORE_PATHS .= ",${@','.join(((d.getVar('COMMON_LICENSE_DIR') or '') + ' ' + (d.getVar('LICENSE_PATH') or '')).split())}" # it would be better to copy them in do_install_append, but find_license_filesa is python python perform_packagecopy_prepend () { enabled = oe.data.typed_value('LICENSE_CREATE_PACKAGE', d) -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 02/14] curl: Fix CVE-2020-8284, CVE-2020-8285, CVE-2020-8286 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 01/14] license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 03/14] selftest: Add argument to keep build dir Anuj Mittal ` (11 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> Backport the CVE patches from upstream https://github.com/curl/curl/commit/ec9cc725d598ac https://github.com/curl/curl/commit/a95a6ce6b809693a1195e3b4347a6cfa0fbc2ee7 https://github.com/curl/curl/commit/69a358f2186e04 https://github.com/curl/curl/commit/d9d01672785b.patch 0002-remove-void-protop-create-union-p.patch is added because the CVE-2020-8285 fix is dependent on it. CVE: CVE-2020-8284 CVE-2020-8285 CVE-2020-8286 Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- ...02-remove-void-protop-create-union-p.patch | 1609 +++++++++++++++++ .../curl/curl/CVE-2020-8284.patch | 210 +++ .../curl/curl/CVE-2020-8285.patch | 257 +++ .../curl/curl/CVE-2020-8286.patch | 131 ++ meta/recipes-support/curl/curl_7.72.0.bb | 4 + 5 files changed, 2211 insertions(+) create mode 100644 meta/recipes-support/curl/curl/0002-remove-void-protop-create-union-p.patch create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8284.patch create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8285.patch create mode 100644 meta/recipes-support/curl/curl/CVE-2020-8286.patch diff --git a/meta/recipes-support/curl/curl/0002-remove-void-protop-create-union-p.patch b/meta/recipes-support/curl/curl/0002-remove-void-protop-create-union-p.patch new file mode 100644 index 0000000000..d0d01fb97c --- /dev/null +++ b/meta/recipes-support/curl/curl/0002-remove-void-protop-create-union-p.patch @@ -0,0 +1,1609 @@ +From bfdb7ee65fc8b96f1fce10ef23871acb092b74b6 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <daniel@haxx.se> +Date: Mon, 23 Nov 2020 08:32:41 +0100 +Subject: [PATCH] urldata: remove 'void *protop' and create the union 'p' + +... to avoid the use of 'void *' for the protocol specific structs done +per transfer. + +Closes #6238 + +Upstream-Status: Backport [https://github.com/curl/curl/commit/a95a6ce6b809693a1195e3b4347a6cfa0fbc2ee7] + +CVE: CVE-2020-8285 + +Signed-off-by: Daniel Stenberg <daniel@haxx.se> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> + +--- + docs/INTERNALS.md | 4 ++-- + lib/file.c | 14 +++++++------- + lib/ftp.c | 36 ++++++++++++++++++------------------ + lib/http.c | 14 +++++++------- + lib/http2.c | 50 +++++++++++++++++++++++++------------------------- + lib/http_proxy.c | 6 +++--- + lib/imap.c | 26 +++++++++++++------------- + lib/mqtt.c | 10 +++++----- + lib/openldap.c | 8 ++++---- + lib/pop3.c | 14 +++++++------- + lib/rtsp.c | 8 ++++---- + lib/smb.c | 20 ++++++++++---------- + lib/smtp.c | 22 +++++++++++----------- + lib/telnet.c | 30 +++++++++++++++--------------- + lib/transfer.c | 8 ++++---- + lib/url.c | 2 +- + lib/urldata.h | 19 +++++++++++++++++-- + lib/vquic/ngtcp2.c | 24 ++++++++++++------------ + lib/vquic/quiche.c | 10 +++++----- + lib/vssh/libssh.c | 10 +++++----- + lib/vssh/libssh2.c | 8 ++++---- + lib/vssh/wolfssh.c | 8 ++++---- + 22 files changed, 183 insertions(+), 168 deletions(-) + +diff --git a/docs/INTERNALS.md b/docs/INTERNALS.md +index 635e7b2..ca8988e 100644 +--- a/docs/INTERNALS.md ++++ b/docs/INTERNALS.md +@@ -980,8 +980,8 @@ for older and later versions as things don't change drastically that often. + protocol specific data that then gets associated with that `Curl_easy` for + the rest of this transfer. It gets freed again at the end of the transfer. + It will be called before the `connectdata` for the transfer has been +- selected/created. Most protocols will allocate its private +- `struct [PROTOCOL]` here and assign `Curl_easy->req.protop` to point to it. ++ selected/created. Most protocols will allocate its private `struct ++ [PROTOCOL]` here and assign `Curl_easy->req.p.[protocol]` to it. + + `->connect_it` allows a protocol to do some specific actions after the TCP + connect is done, that can still be considered part of the connection phase. +diff --git a/lib/file.c b/lib/file.c +index cd3e49c..110e5c2 100644 +--- a/lib/file.c ++++ b/lib/file.c +@@ -119,8 +119,8 @@ const struct Curl_handler Curl_handler_file = { + static CURLcode file_setup_connection(struct connectdata *conn) + { + /* allocate the FILE specific struct */ +- conn->data->req.protop = calloc(1, sizeof(struct FILEPROTO)); +- if(!conn->data->req.protop) ++ conn->data->req.p.file = calloc(1, sizeof(struct FILEPROTO)); ++ if(!conn->data->req.p.file) + return CURLE_OUT_OF_MEMORY; + + return CURLE_OK; +@@ -135,7 +135,7 @@ static CURLcode file_connect(struct connectdata *conn, bool *done) + { + struct Curl_easy *data = conn->data; + char *real_path; +- struct FILEPROTO *file = data->req.protop; ++ struct FILEPROTO *file = data->req.p.file; + int fd; + #ifdef DOS_FILESYSTEM + size_t i; +@@ -209,7 +209,7 @@ static CURLcode file_connect(struct connectdata *conn, bool *done) + static CURLcode file_done(struct connectdata *conn, + CURLcode status, bool premature) + { +- struct FILEPROTO *file = conn->data->req.protop; ++ struct FILEPROTO *file = conn->data->req.p.file; + (void)status; /* not used */ + (void)premature; /* not used */ + +@@ -227,7 +227,7 @@ static CURLcode file_done(struct connectdata *conn, + static CURLcode file_disconnect(struct connectdata *conn, + bool dead_connection) + { +- struct FILEPROTO *file = conn->data->req.protop; ++ struct FILEPROTO *file = conn->data->req.p.file; + (void)dead_connection; /* not used */ + + if(file) { +@@ -249,7 +249,7 @@ static CURLcode file_disconnect(struct connectdata *conn, + + static CURLcode file_upload(struct connectdata *conn) + { +- struct FILEPROTO *file = conn->data->req.protop; ++ struct FILEPROTO *file = conn->data->req.p.file; + const char *dir = strchr(file->path, DIRSEP); + int fd; + int mode; +@@ -391,7 +391,7 @@ static CURLcode file_do(struct connectdata *conn, bool *done) + if(data->set.upload) + return file_upload(conn); + +- file = conn->data->req.protop; ++ file = conn->data->req.p.file; + + /* get the fd from the connection phase */ + fd = file->fd; +diff --git a/lib/ftp.c b/lib/ftp.c +index 9fadac5..d1a9447 100644 +--- a/lib/ftp.c ++++ b/lib/ftp.c +@@ -1345,7 +1345,7 @@ static CURLcode ftp_state_use_pasv(struct connectdata *conn) + static CURLcode ftp_state_prepare_transfer(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct Curl_easy *data = conn->data; + + if(ftp->transfer != FTPTRANSFER_BODY) { +@@ -1388,7 +1388,7 @@ static CURLcode ftp_state_prepare_transfer(struct connectdata *conn) + static CURLcode ftp_state_rest(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + + if((ftp->transfer != FTPTRANSFER_BODY) && ftpc->file) { +@@ -1409,7 +1409,7 @@ static CURLcode ftp_state_rest(struct connectdata *conn) + static CURLcode ftp_state_size(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + + if((ftp->transfer == FTPTRANSFER_INFO) && ftpc->file) { +@@ -1430,7 +1430,7 @@ static CURLcode ftp_state_list(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + + /* If this output is to be machine-parsed, the NLST command might be better + to use, since the LIST command output is not specified or standard in any +@@ -1508,7 +1508,7 @@ static CURLcode ftp_state_stor_prequote(struct connectdata *conn) + static CURLcode ftp_state_type(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct Curl_easy *data = conn->data; + struct ftp_conn *ftpc = &conn->proto.ftpc; + +@@ -1565,7 +1565,7 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn, + bool sizechecked) + { + CURLcode result = CURLE_OK; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct Curl_easy *data = conn->data; + struct ftp_conn *ftpc = &conn->proto.ftpc; + +@@ -1664,7 +1664,7 @@ static CURLcode ftp_state_quote(struct connectdata *conn, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + bool quote = FALSE; + struct curl_slist *item; +@@ -2033,7 +2033,7 @@ static CURLcode ftp_state_mdtm_resp(struct connectdata *conn, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + + switch(ftpcode) { +@@ -2166,7 +2166,7 @@ static CURLcode ftp_state_retr(struct connectdata *conn, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + + if(data->set.max_filesize && (filesize > data->set.max_filesize)) { +@@ -2378,7 +2378,7 @@ static CURLcode ftp_state_get_resp(struct connectdata *conn, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + + if((ftpcode == 150) || (ftpcode == 125)) { + +@@ -3138,7 +3138,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status, + bool premature) + { + struct Curl_easy *data = conn->data; +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + struct pingpong *pp = &ftpc->pp; + ssize_t nread; +@@ -3492,7 +3492,7 @@ static CURLcode ftp_do_more(struct connectdata *conn, int *completep) + bool complete = FALSE; + + /* the ftp struct is inited in ftp_connect() */ +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + + /* if the second connection isn't done yet, wait for it */ + if(!conn->bits.tcpconnect[SECONDARYSOCKET]) { +@@ -3657,7 +3657,7 @@ CURLcode ftp_perform(struct connectdata *conn, + + if(conn->data->set.opt_no_body) { + /* requested no body means no transfer... */ +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + ftp->transfer = FTPTRANSFER_INFO; + } + +@@ -3692,7 +3692,7 @@ static void wc_data_dtor(void *ptr) + static CURLcode init_wc_data(struct connectdata *conn) + { + char *last_slash; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + char *path = ftp->path; + struct WildcardData *wildcard = &(conn->data->wildcard); + CURLcode result = CURLE_OK; +@@ -3826,7 +3826,7 @@ static CURLcode wc_statemach(struct connectdata *conn) + /* filelist has at least one file, lets get first one */ + struct ftp_conn *ftpc = &conn->proto.ftpc; + struct curl_fileinfo *finfo = wildcard->filelist.head->ptr; +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + + char *tmp_path = aprintf("%s%s", wildcard->path, finfo->filename); + if(!tmp_path) +@@ -4099,7 +4099,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn) + { + struct Curl_easy *data = conn->data; + /* the ftp struct is already inited in ftp_connect() */ +- struct FTP *ftp = data->req.protop; ++ struct FTP *ftp = data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + const char *slashPos = NULL; + const char *fileName = NULL; +@@ -4244,7 +4244,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn) + static CURLcode ftp_dophase_done(struct connectdata *conn, + bool connected) + { +- struct FTP *ftp = conn->data->req.protop; ++ struct FTP *ftp = conn->data->req.p.ftp; + struct ftp_conn *ftpc = &conn->proto.ftpc; + + if(connected) { +@@ -4341,7 +4341,7 @@ static CURLcode ftp_setup_connection(struct connectdata *conn) + char *type; + struct FTP *ftp; + +- conn->data->req.protop = ftp = calloc(sizeof(struct FTP), 1); ++ conn->data->req.p.ftp = ftp = calloc(sizeof(struct FTP), 1); + if(NULL == ftp) + return CURLE_OUT_OF_MEMORY; + +diff --git a/lib/http.c b/lib/http.c +index 8fcdd43..31d9112 100644 +--- a/lib/http.c ++++ b/lib/http.c +@@ -162,14 +162,14 @@ static CURLcode http_setup_conn(struct connectdata *conn) + during this request */ + struct HTTP *http; + struct Curl_easy *data = conn->data; +- DEBUGASSERT(data->req.protop == NULL); ++ DEBUGASSERT(data->req.p.http == NULL); + + http = calloc(1, sizeof(struct HTTP)); + if(!http) + return CURLE_OUT_OF_MEMORY; + + Curl_mime_initpart(&http->form, conn->data); +- data->req.protop = http; ++ data->req.p.http = http; + + if(data->set.httpversion == CURL_HTTP_VERSION_3) { + if(conn->handler->flags & PROTOPT_SSL) +@@ -425,7 +425,7 @@ static bool pickoneauth(struct auth *pick, unsigned long mask) + static CURLcode http_perhapsrewind(struct connectdata *conn) + { + struct Curl_easy *data = conn->data; +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + curl_off_t bytessent; + curl_off_t expectsend = -1; /* default is unknown */ + +@@ -1109,7 +1109,7 @@ static size_t readmoredata(char *buffer, + void *userp) + { + struct connectdata *conn = (struct connectdata *)userp; +- struct HTTP *http = conn->data->req.protop; ++ struct HTTP *http = conn->data->req.p.http; + size_t fullsize = size * nitems; + + if(!http->postsize) +@@ -1167,7 +1167,7 @@ CURLcode Curl_buffer_send(struct dynbuf *in, + char *ptr; + size_t size; + struct Curl_easy *data = conn->data; +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + size_t sendsize; + curl_socket_t sockfd; + size_t headersize; +@@ -1517,7 +1517,7 @@ CURLcode Curl_http_done(struct connectdata *conn, + CURLcode status, bool premature) + { + struct Curl_easy *data = conn->data; +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + + /* Clear multipass flag. If authentication isn't done yet, then it will get + * a chance to be set back to true when we output the next auth header */ +@@ -1978,7 +1978,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) + return result; + } + } +- http = data->req.protop; ++ http = data->req.p.http; + DEBUGASSERT(http); + + if(!data->state.this_is_a_follow) { +diff --git a/lib/http2.c b/lib/http2.c +index d316da8..c41a1c2 100644 +--- a/lib/http2.c ++++ b/lib/http2.c +@@ -257,7 +257,7 @@ static unsigned int http2_conncheck(struct connectdata *check, + /* called from http_setup_conn */ + void Curl_http2_setup_req(struct Curl_easy *data) + { +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + http->bodystarted = FALSE; + http->status_code = -1; + http->pausedata = NULL; +@@ -391,7 +391,7 @@ char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num) + if(!h || !GOOD_EASY_HANDLE(h->data)) + return NULL; + else { +- struct HTTP *stream = h->data->req.protop; ++ struct HTTP *stream = h->data->req.p.http; + if(num < stream->push_headers_used) + return stream->push_headers[num]; + } +@@ -413,7 +413,7 @@ char *curl_pushheader_byname(struct curl_pushheaders *h, const char *header) + !strcmp(header, ":") || strchr(header + 1, ':')) + return NULL; + else { +- struct HTTP *stream = h->data->req.protop; ++ struct HTTP *stream = h->data->req.p.http; + size_t len = strlen(header); + size_t i; + for(i = 0; i<stream->push_headers_used; i++) { +@@ -460,7 +460,7 @@ static struct Curl_easy *duphandle(struct Curl_easy *data) + (void)Curl_close(&second); + } + else { +- second->req.protop = http; ++ second->req.p.http = http; + Curl_dyn_init(&http->header_recvbuf, DYN_H2_HEADERS); + Curl_http2_setup_req(second); + second->state.stream_weight = data->state.stream_weight; +@@ -537,7 +537,7 @@ static int push_promise(struct Curl_easy *data, + /* ask the application */ + H2BUGF(infof(data, "Got PUSH_PROMISE, ask application!\n")); + +- stream = data->req.protop; ++ stream = data->req.p.http; + if(!stream) { + failf(data, "Internal NULL stream!\n"); + (void)Curl_close(&newhandle); +@@ -567,13 +567,13 @@ static int push_promise(struct Curl_easy *data, + if(rv) { + DEBUGASSERT((rv > CURL_PUSH_OK) && (rv <= CURL_PUSH_ERROROUT)); + /* denied, kill off the new handle again */ +- http2_stream_free(newhandle->req.protop); +- newhandle->req.protop = NULL; ++ http2_stream_free(newhandle->req.p.http); ++ newhandle->req.p.http = NULL; + (void)Curl_close(&newhandle); + goto fail; + } + +- newstream = newhandle->req.protop; ++ newstream = newhandle->req.p.http; + newstream->stream_id = frame->promised_stream_id; + newhandle->req.maxdownload = -1; + newhandle->req.size = -1; +@@ -583,8 +583,8 @@ static int push_promise(struct Curl_easy *data, + rc = Curl_multi_add_perform(data->multi, newhandle, conn); + if(rc) { + infof(data, "failed to add handle to multi\n"); +- http2_stream_free(newhandle->req.protop); +- newhandle->req.protop = NULL; ++ http2_stream_free(newhandle->req.p.http); ++ newhandle->req.p.http = NULL; + Curl_close(&newhandle); + rv = CURL_PUSH_DENY; + goto fail; +@@ -667,7 +667,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame, + return 0; + } + +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream) { + H2BUGF(infof(data_s, "No proto pointer for stream: %x\n", + stream_id)); +@@ -783,7 +783,7 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags, + internal error more than anything else! */ + return NGHTTP2_ERR_CALLBACK_FAILURE; + +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream) + return NGHTTP2_ERR_CALLBACK_FAILURE; + +@@ -849,7 +849,7 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id, + } + H2BUGF(infof(data_s, "on_stream_close(), %s (err %d), stream %u\n", + nghttp2_http2_strerror(error_code), error_code, stream_id)); +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream) + return NGHTTP2_ERR_CALLBACK_FAILURE; + +@@ -894,7 +894,7 @@ static int on_begin_headers(nghttp2_session *session, + return 0; + } + +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream || !stream->bodystarted) { + return 0; + } +@@ -952,7 +952,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame, + internal error more than anything else! */ + return NGHTTP2_ERR_CALLBACK_FAILURE; + +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream) { + failf(data_s, "Internal NULL stream! 5\n"); + return NGHTTP2_ERR_CALLBACK_FAILURE; +@@ -1100,7 +1100,7 @@ static ssize_t data_source_read_callback(nghttp2_session *session, + internal error more than anything else! */ + return NGHTTP2_ERR_CALLBACK_FAILURE; + +- stream = data_s->req.protop; ++ stream = data_s->req.p.http; + if(!stream) + return NGHTTP2_ERR_CALLBACK_FAILURE; + } +@@ -1161,7 +1161,7 @@ static void populate_settings(struct connectdata *conn, + + void Curl_http2_done(struct Curl_easy *data, bool premature) + { +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + struct http_conn *httpc = &data->conn->proto.httpc; + + /* there might be allocated resources done before this got the 'h2' pointer +@@ -1398,7 +1398,7 @@ CURLcode Curl_http2_done_sending(struct connectdata *conn) + (conn->handler == &Curl_handler_http2)) { + /* make sure this is only attempted for HTTP/2 transfers */ + +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + + struct http_conn *httpc = &conn->proto.httpc; + nghttp2_session *h2 = httpc->h2; +@@ -1522,7 +1522,7 @@ static void h2_pri_spec(struct Curl_easy *data, + nghttp2_priority_spec *pri_spec) + { + struct HTTP *depstream = (data->set.stream_depends_on? +- data->set.stream_depends_on->req.protop:NULL); ++ data->set.stream_depends_on->req.p.http:NULL); + int32_t depstream_id = depstream? depstream->stream_id:0; + nghttp2_priority_spec_init(pri_spec, depstream_id, data->set.stream_weight, + data->set.stream_depends_e); +@@ -1539,7 +1539,7 @@ static void h2_pri_spec(struct Curl_easy *data, + static int h2_session_send(struct Curl_easy *data, + nghttp2_session *h2) + { +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + if((data->set.stream_weight != data->state.stream_weight) || + (data->set.stream_depends_e != data->state.stream_depends_e) || + (data->set.stream_depends_on != data->state.stream_depends_on) ) { +@@ -1569,7 +1569,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex, + ssize_t nread; + struct http_conn *httpc = &conn->proto.httpc; + struct Curl_easy *data = conn->data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + + (void)sockindex; /* we always do HTTP2 on sockindex 0 */ + +@@ -1874,7 +1874,7 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex, + */ + int rv; + struct http_conn *httpc = &conn->proto.httpc; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + nghttp2_nv *nva = NULL; + size_t nheader; + size_t i; +@@ -2183,7 +2183,7 @@ CURLcode Curl_http2_setup(struct connectdata *conn) + { + CURLcode result; + struct http_conn *httpc = &conn->proto.httpc; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + + DEBUGASSERT(conn->data->state.buffer); + +@@ -2238,7 +2238,7 @@ CURLcode Curl_http2_switched(struct connectdata *conn, + int rv; + ssize_t nproc; + struct Curl_easy *data = conn->data; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + + result = Curl_http2_setup(conn); + if(result) +@@ -2358,7 +2358,7 @@ CURLcode Curl_http2_stream_pause(struct Curl_easy *data, bool pause) + return CURLE_OK; + #ifdef NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE + else { +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + struct http_conn *httpc = &data->conn->proto.httpc; + uint32_t window = !pause * HTTP2_HUGE_WINDOW_SIZE; + int rv = nghttp2_session_set_local_window_size(httpc->h2, +diff --git a/lib/http_proxy.c b/lib/http_proxy.c +index f188cbf..69aacb4 100644 +--- a/lib/http_proxy.c ++++ b/lib/http_proxy.c +@@ -102,9 +102,9 @@ CURLcode Curl_proxy_connect(struct connectdata *conn, int sockindex) + * This function might be called several times in the multi interface case + * if the proxy's CONNECT response is not instant. + */ +- prot_save = conn->data->req.protop; ++ prot_save = conn->data->req.p.http; + memset(&http_proxy, 0, sizeof(http_proxy)); +- conn->data->req.protop = &http_proxy; ++ conn->data->req.p.http = &http_proxy; + connkeep(conn, "HTTP proxy CONNECT"); + + /* for the secondary socket (FTP), use the "connect to host" +@@ -125,7 +125,7 @@ CURLcode Curl_proxy_connect(struct connectdata *conn, int sockindex) + else + remote_port = conn->remote_port; + result = Curl_proxyCONNECT(conn, sockindex, hostname, remote_port); +- conn->data->req.protop = prot_save; ++ conn->data->req.p.http = prot_save; + if(CURLE_OK != result) + return result; + Curl_safefree(data->state.aptr.proxyuserpwd); +diff --git a/lib/imap.c b/lib/imap.c +index cad0e59..bda23a5 100644 +--- a/lib/imap.c ++++ b/lib/imap.c +@@ -244,7 +244,7 @@ static bool imap_matchresp(const char *line, size_t len, const char *cmd) + static bool imap_endofresp(struct connectdata *conn, char *line, size_t len, + int *resp) + { +- struct IMAP *imap = conn->data->req.protop; ++ struct IMAP *imap = conn->data->req.p.imap; + struct imap_conn *imapc = &conn->proto.imapc; + const char *id = imapc->resptag; + size_t id_len = strlen(id); +@@ -605,7 +605,7 @@ static CURLcode imap_perform_list(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + + if(imap->custom) + /* Send the custom request */ +@@ -640,7 +640,7 @@ static CURLcode imap_perform_select(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + struct imap_conn *imapc = &conn->proto.imapc; + char *mailbox; + +@@ -679,7 +679,7 @@ static CURLcode imap_perform_select(struct connectdata *conn) + static CURLcode imap_perform_fetch(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct IMAP *imap = conn->data->req.protop; ++ struct IMAP *imap = conn->data->req.p.imap; + /* Check we have a UID */ + if(imap->uid) { + +@@ -727,7 +727,7 @@ static CURLcode imap_perform_append(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + char *mailbox; + + /* Check we have a mailbox */ +@@ -797,7 +797,7 @@ static CURLcode imap_perform_append(struct connectdata *conn) + static CURLcode imap_perform_search(struct connectdata *conn) + { + CURLcode result = CURLE_OK; +- struct IMAP *imap = conn->data->req.protop; ++ struct IMAP *imap = conn->data->req.p.imap; + + /* Check we have a query string */ + if(!imap->query) { +@@ -1051,7 +1051,7 @@ static CURLcode imap_state_select_resp(struct connectdata *conn, int imapcode, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = conn->data->req.protop; ++ struct IMAP *imap = conn->data->req.p.imap; + struct imap_conn *imapc = &conn->proto.imapc; + const char *line = data->state.buffer; + +@@ -1380,7 +1380,7 @@ static CURLcode imap_init(struct connectdata *conn) + struct Curl_easy *data = conn->data; + struct IMAP *imap; + +- imap = data->req.protop = calloc(sizeof(struct IMAP), 1); ++ imap = data->req.p.imap = calloc(sizeof(struct IMAP), 1); + if(!imap) + result = CURLE_OUT_OF_MEMORY; + +@@ -1457,7 +1457,7 @@ static CURLcode imap_done(struct connectdata *conn, CURLcode status, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + + (void)premature; + +@@ -1517,7 +1517,7 @@ static CURLcode imap_perform(struct connectdata *conn, bool *connected, + /* This is IMAP and no proxy */ + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + struct imap_conn *imapc = &conn->proto.imapc; + bool selected = FALSE; + +@@ -1640,7 +1640,7 @@ static CURLcode imap_disconnect(struct connectdata *conn, bool dead_connection) + /* Call this when the DO phase has completed */ + static CURLcode imap_dophase_done(struct connectdata *conn, bool connected) + { +- struct IMAP *imap = conn->data->req.protop; ++ struct IMAP *imap = conn->data->req.p.imap; + + (void)connected; + +@@ -1942,7 +1942,7 @@ static CURLcode imap_parse_url_path(struct connectdata *conn) + /* The imap struct is already initialised in imap_connect() */ + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + const char *begin = &data->state.up.path[1]; /* skip leading slash */ + const char *ptr = begin; + +@@ -2074,7 +2074,7 @@ static CURLcode imap_parse_custom_request(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct IMAP *imap = data->req.protop; ++ struct IMAP *imap = data->req.p.imap; + const char *custom = data->set.str[STRING_CUSTOMREQUEST]; + + if(custom) { +diff --git a/lib/mqtt.c b/lib/mqtt.c +index f6f4416..86b22b8 100644 +--- a/lib/mqtt.c ++++ b/lib/mqtt.c +@@ -95,12 +95,12 @@ static CURLcode mqtt_setup_conn(struct connectdata *conn) + during this request */ + struct MQTT *mq; + struct Curl_easy *data = conn->data; +- DEBUGASSERT(data->req.protop == NULL); ++ DEBUGASSERT(data->req.p.mqtt == NULL); + + mq = calloc(1, sizeof(struct MQTT)); + if(!mq) + return CURLE_OUT_OF_MEMORY; +- data->req.protop = mq; ++ data->req.p.mqtt = mq; + return CURLE_OK; + } + +@@ -110,7 +110,7 @@ static CURLcode mqtt_send(struct connectdata *conn, + CURLcode result = CURLE_OK; + curl_socket_t sockfd = conn->sock[FIRSTSOCKET]; + struct Curl_easy *data = conn->data; +- struct MQTT *mq = data->req.protop; ++ struct MQTT *mq = data->req.p.mqtt; + ssize_t n; + result = Curl_write(conn, sockfd, buf, len, &n); + if(!result && data->set.verbose) +@@ -426,7 +426,7 @@ static CURLcode mqtt_read_publish(struct connectdata *conn, + unsigned char *pkt = (unsigned char *)data->state.buffer; + size_t remlen; + struct mqtt_conn *mqtt = &conn->proto.mqtt; +- struct MQTT *mq = data->req.protop; ++ struct MQTT *mq = data->req.p.mqtt; + unsigned char packet; + + switch(mqtt->state) { +@@ -533,7 +533,7 @@ static CURLcode mqtt_doing(struct connectdata *conn, bool *done) + CURLcode result = CURLE_OK; + struct mqtt_conn *mqtt = &conn->proto.mqtt; + struct Curl_easy *data = conn->data; +- struct MQTT *mq = data->req.protop; ++ struct MQTT *mq = data->req.p.mqtt; + ssize_t nread; + curl_socket_t sockfd = conn->sock[FIRSTSOCKET]; + unsigned char *pkt = (unsigned char *)data->state.buffer; +diff --git a/lib/openldap.c b/lib/openldap.c +index 782d6a0..c955df6 100644 +--- a/lib/openldap.c ++++ b/lib/openldap.c +@@ -410,7 +410,7 @@ static CURLcode ldap_do(struct connectdata *conn, bool *done) + if(!lr) + return CURLE_OUT_OF_MEMORY; + lr->msgid = msgid; +- data->req.protop = lr; ++ data->req.p.ldap = lr; + Curl_setup_transfer(data, FIRSTSOCKET, -1, FALSE, -1); + *done = TRUE; + return CURLE_OK; +@@ -419,7 +419,7 @@ static CURLcode ldap_do(struct connectdata *conn, bool *done) + static CURLcode ldap_done(struct connectdata *conn, CURLcode res, + bool premature) + { +- struct ldapreqinfo *lr = conn->data->req.protop; ++ struct ldapreqinfo *lr = conn->data->req.p.ldap; + + (void)res; + (void)premature; +@@ -431,7 +431,7 @@ static CURLcode ldap_done(struct connectdata *conn, CURLcode res, + ldap_abandon_ext(li->ld, lr->msgid, NULL, NULL); + lr->msgid = 0; + } +- conn->data->req.protop = NULL; ++ conn->data->req.p.ldap = NULL; + free(lr); + } + +@@ -443,7 +443,7 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf, + { + struct ldapconninfo *li = conn->proto.ldapc; + struct Curl_easy *data = conn->data; +- struct ldapreqinfo *lr = data->req.protop; ++ struct ldapreqinfo *lr = data->req.p.ldap; + int rc, ret; + LDAPMessage *msg = NULL; + LDAPMessage *ent; +diff --git a/lib/pop3.c b/lib/pop3.c +index 9ff5c78..04cc887 100644 +--- a/lib/pop3.c ++++ b/lib/pop3.c +@@ -551,7 +551,7 @@ static CURLcode pop3_perform_command(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct POP3 *pop3 = data->req.protop; ++ struct POP3 *pop3 = data->req.p.pop3; + const char *command = NULL; + + /* Calculate the default command */ +@@ -884,7 +884,7 @@ static CURLcode pop3_state_command_resp(struct connectdata *conn, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct POP3 *pop3 = data->req.protop; ++ struct POP3 *pop3 = data->req.p.pop3; + struct pop3_conn *pop3c = &conn->proto.pop3c; + struct pingpong *pp = &pop3c->pp; + +@@ -1046,7 +1046,7 @@ static CURLcode pop3_init(struct connectdata *conn) + struct Curl_easy *data = conn->data; + struct POP3 *pop3; + +- pop3 = data->req.protop = calloc(sizeof(struct POP3), 1); ++ pop3 = data->req.p.pop3 = calloc(sizeof(struct POP3), 1); + if(!pop3) + result = CURLE_OUT_OF_MEMORY; + +@@ -1120,7 +1120,7 @@ static CURLcode pop3_done(struct connectdata *conn, CURLcode status, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct POP3 *pop3 = data->req.protop; ++ struct POP3 *pop3 = data->req.p.pop3; + + (void)premature; + +@@ -1154,7 +1154,7 @@ static CURLcode pop3_perform(struct connectdata *conn, bool *connected, + { + /* This is POP3 and no proxy */ + CURLcode result = CURLE_OK; +- struct POP3 *pop3 = conn->data->req.protop; ++ struct POP3 *pop3 = conn->data->req.p.pop3; + + DEBUGF(infof(conn->data, "DO phase starts\n")); + +@@ -1386,7 +1386,7 @@ static CURLcode pop3_parse_url_path(struct connectdata *conn) + { + /* The POP3 struct is already initialised in pop3_connect() */ + struct Curl_easy *data = conn->data; +- struct POP3 *pop3 = data->req.protop; ++ struct POP3 *pop3 = data->req.p.pop3; + const char *path = &data->state.up.path[1]; /* skip leading path */ + + /* URL decode the path for the message ID */ +@@ -1403,7 +1403,7 @@ static CURLcode pop3_parse_custom_request(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct POP3 *pop3 = data->req.protop; ++ struct POP3 *pop3 = data->req.p.pop3; + const char *custom = data->set.str[STRING_CUSTOMREQUEST]; + + /* URL decode the custom request */ +diff --git a/lib/rtsp.c b/lib/rtsp.c +index dbd7dc6..29e6d58 100644 +--- a/lib/rtsp.c ++++ b/lib/rtsp.c +@@ -114,7 +114,7 @@ static CURLcode rtsp_setup_connection(struct connectdata *conn) + { + struct RTSP *rtsp; + +- conn->data->req.protop = rtsp = calloc(1, sizeof(struct RTSP)); ++ conn->data->req.p.rtsp = rtsp = calloc(1, sizeof(struct RTSP)); + if(!rtsp) + return CURLE_OUT_OF_MEMORY; + +@@ -199,7 +199,7 @@ static CURLcode rtsp_done(struct connectdata *conn, + CURLcode status, bool premature) + { + struct Curl_easy *data = conn->data; +- struct RTSP *rtsp = data->req.protop; ++ struct RTSP *rtsp = data->req.p.rtsp; + CURLcode httpStatus; + + /* Bypass HTTP empty-reply checks on receive */ +@@ -232,7 +232,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done) + struct Curl_easy *data = conn->data; + CURLcode result = CURLE_OK; + Curl_RtspReq rtspreq = data->set.rtspreq; +- struct RTSP *rtsp = data->req.protop; ++ struct RTSP *rtsp = data->req.p.rtsp; + struct dynbuf req_buffer; + curl_off_t postsize = 0; /* for ANNOUNCE and SET_PARAMETER */ + curl_off_t putsize = 0; /* for ANNOUNCE and SET_PARAMETER */ +@@ -764,7 +764,7 @@ CURLcode Curl_rtsp_parseheader(struct connectdata *conn, + /* Store the received CSeq. Match is verified in rtsp_done */ + int nc = sscanf(&header[4], ": %ld", &CSeq); + if(nc == 1) { +- struct RTSP *rtsp = data->req.protop; ++ struct RTSP *rtsp = data->req.p.rtsp; + rtsp->CSeq_recv = CSeq; /* mark the request */ + data->state.rtsp_CSeq_recv = CSeq; /* update the handle */ + } +diff --git a/lib/smb.c b/lib/smb.c +index d493adc..9eba7ab 100644 +--- a/lib/smb.c ++++ b/lib/smb.c +@@ -204,7 +204,7 @@ static void conn_state(struct connectdata *conn, enum smb_conn_state newstate) + static void request_state(struct connectdata *conn, + enum smb_req_state newstate) + { +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + #if defined(DEBUGBUILD) && !defined(CURL_DISABLE_VERBOSE_STRINGS) + /* For debug purposes */ + static const char * const names[] = { +@@ -234,7 +234,7 @@ static CURLcode smb_setup_connection(struct connectdata *conn) + struct smb_request *req; + + /* Initialize the request state */ +- conn->data->req.protop = req = calloc(1, sizeof(struct smb_request)); ++ conn->data->req.p.smb = req = calloc(1, sizeof(struct smb_request)); + if(!req) + return CURLE_OUT_OF_MEMORY; + +@@ -342,7 +342,7 @@ static void smb_format_message(struct connectdata *conn, struct smb_header *h, + unsigned char cmd, size_t len) + { + struct smb_conn *smbc = &conn->proto.smbc; +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + unsigned int pid; + + memset(h, 0, sizeof(*h)); +@@ -505,7 +505,7 @@ static CURLcode smb_send_tree_connect(struct connectdata *conn) + + static CURLcode smb_send_open(struct connectdata *conn) + { +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + struct smb_nt_create msg; + size_t byte_count; + +@@ -535,7 +535,7 @@ static CURLcode smb_send_open(struct connectdata *conn) + + static CURLcode smb_send_close(struct connectdata *conn) + { +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + struct smb_close msg; + + memset(&msg, 0, sizeof(msg)); +@@ -556,7 +556,7 @@ static CURLcode smb_send_tree_disconnect(struct connectdata *conn) + + static CURLcode smb_send_read(struct connectdata *conn) + { +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + curl_off_t offset = conn->data->req.offset; + struct smb_read msg; + +@@ -575,7 +575,7 @@ static CURLcode smb_send_read(struct connectdata *conn) + static CURLcode smb_send_write(struct connectdata *conn) + { + struct smb_write *msg; +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + curl_off_t offset = conn->data->req.offset; + curl_off_t upload_size = conn->data->req.size - conn->data->req.bytecount; + CURLcode result = Curl_get_upload_buffer(conn->data); +@@ -738,7 +738,7 @@ static void get_posix_time(time_t *out, curl_off_t timestamp) + + static CURLcode smb_request_state(struct connectdata *conn, bool *done) + { +- struct smb_request *req = conn->data->req.protop; ++ struct smb_request *req = conn->data->req.p.smb; + struct smb_header *h; + struct smb_conn *smbc = &conn->proto.smbc; + enum smb_req_state next_state = SMB_DONE; +@@ -923,7 +923,7 @@ static CURLcode smb_done(struct connectdata *conn, CURLcode status, + bool premature) + { + (void) premature; +- Curl_safefree(conn->data->req.protop); ++ Curl_safefree(conn->data->req.p.smb); + return status; + } + +@@ -957,7 +957,7 @@ static CURLcode smb_do(struct connectdata *conn, bool *done) + static CURLcode smb_parse_url_path(struct connectdata *conn) + { + struct Curl_easy *data = conn->data; +- struct smb_request *req = data->req.protop; ++ struct smb_request *req = data->req.p.smb; + struct smb_conn *smbc = &conn->proto.smbc; + char *path; + char *slash; +diff --git a/lib/smtp.c b/lib/smtp.c +index aea41bb..c5d0296 100644 +--- a/lib/smtp.c ++++ b/lib/smtp.c +@@ -484,7 +484,7 @@ static CURLcode smtp_perform_command(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + + if(smtp->rcpt) { + /* We notify the server we are sending UTF-8 data if a) it supports the +@@ -697,7 +697,7 @@ static CURLcode smtp_perform_mail(struct connectdata *conn) + any there do, as we need to correctly identify our support for SMTPUTF8 + in the envelope, as per RFC-6531 sect. 3.4 */ + if(conn->proto.smtpc.utf8_supported && !utf8) { +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + struct curl_slist *rcpt = smtp->rcpt; + + while(rcpt && !utf8) { +@@ -741,7 +741,7 @@ static CURLcode smtp_perform_rcpt_to(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + char *address = NULL; + struct hostname host = { NULL, NULL, NULL, NULL }; + +@@ -989,7 +989,7 @@ static CURLcode smtp_state_command_resp(struct connectdata *conn, int smtpcode, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + char *line = data->state.buffer; + size_t len = strlen(line); + +@@ -1055,7 +1055,7 @@ static CURLcode smtp_state_rcpt_resp(struct connectdata *conn, int smtpcode, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + bool is_smtp_err = FALSE; + bool is_smtp_blocking_err = FALSE; + +@@ -1278,7 +1278,7 @@ static CURLcode smtp_init(struct connectdata *conn) + struct Curl_easy *data = conn->data; + struct SMTP *smtp; + +- smtp = data->req.protop = calloc(sizeof(struct SMTP), 1); ++ smtp = data->req.p.smtp = calloc(sizeof(struct SMTP), 1); + if(!smtp) + result = CURLE_OUT_OF_MEMORY; + +@@ -1356,7 +1356,7 @@ static CURLcode smtp_done(struct connectdata *conn, CURLcode status, + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + struct pingpong *pp = &conn->proto.smtpc.pp; + char *eob; + ssize_t len; +@@ -1442,7 +1442,7 @@ static CURLcode smtp_perform(struct connectdata *conn, bool *connected, + /* This is SMTP and no proxy */ + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + + DEBUGF(infof(conn->data, "DO phase starts\n")); + +@@ -1550,7 +1550,7 @@ static CURLcode smtp_disconnect(struct connectdata *conn, bool dead_connection) + /* Call this when the DO phase has completed */ + static CURLcode smtp_dophase_done(struct connectdata *conn, bool connected) + { +- struct SMTP *smtp = conn->data->req.protop; ++ struct SMTP *smtp = conn->data->req.p.smtp; + + (void)connected; + +@@ -1703,7 +1703,7 @@ static CURLcode smtp_parse_custom_request(struct connectdata *conn) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + const char *custom = data->set.str[STRING_CUSTOMREQUEST]; + + /* URL decode the custom request */ +@@ -1796,7 +1796,7 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread) + ssize_t i; + ssize_t si; + struct Curl_easy *data = conn->data; +- struct SMTP *smtp = data->req.protop; ++ struct SMTP *smtp = data->req.p.smtp; + char *scratch = data->state.scratch; + char *newscratch = NULL; + char *oldscratch = NULL; +diff --git a/lib/telnet.c b/lib/telnet.c +index c3b58e5..1fc5af1 100644 +--- a/lib/telnet.c ++++ b/lib/telnet.c +@@ -247,7 +247,7 @@ CURLcode init_telnet(struct connectdata *conn) + if(!tn) + return CURLE_OUT_OF_MEMORY; + +- conn->data->req.protop = tn; /* make us known */ ++ conn->data->req.p.telnet = tn; /* make us known */ + + tn->telrcv_state = CURL_TS_DATA; + +@@ -292,7 +292,7 @@ CURLcode init_telnet(struct connectdata *conn) + static void negotiate(struct connectdata *conn) + { + int i; +- struct TELNET *tn = (struct TELNET *) conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *) conn->data->req.p.telnet; + + for(i = 0; i < CURL_NTELOPTS; i++) { + if(i == CURL_TELOPT_ECHO) +@@ -365,7 +365,7 @@ static void send_negotiation(struct connectdata *conn, int cmd, int option) + static + void set_remote_option(struct connectdata *conn, int option, int newstate) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + if(newstate == CURL_YES) { + switch(tn->him[option]) { + case CURL_NO: +@@ -439,7 +439,7 @@ void set_remote_option(struct connectdata *conn, int option, int newstate) + static + void rec_will(struct connectdata *conn, int option) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + switch(tn->him[option]) { + case CURL_NO: + if(tn->him_preferred[option] == CURL_YES) { +@@ -487,7 +487,7 @@ void rec_will(struct connectdata *conn, int option) + static + void rec_wont(struct connectdata *conn, int option) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + switch(tn->him[option]) { + case CURL_NO: + /* Already disabled */ +@@ -529,7 +529,7 @@ void rec_wont(struct connectdata *conn, int option) + static void + set_local_option(struct connectdata *conn, int option, int newstate) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + if(newstate == CURL_YES) { + switch(tn->us[option]) { + case CURL_NO: +@@ -603,7 +603,7 @@ set_local_option(struct connectdata *conn, int option, int newstate) + static + void rec_do(struct connectdata *conn, int option) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + switch(tn->us[option]) { + case CURL_NO: + if(tn->us_preferred[option] == CURL_YES) { +@@ -663,7 +663,7 @@ void rec_do(struct connectdata *conn, int option) + static + void rec_dont(struct connectdata *conn, int option) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + switch(tn->us[option]) { + case CURL_NO: + /* Already disabled */ +@@ -822,7 +822,7 @@ static CURLcode check_telnet_options(struct connectdata *conn) + char option_keyword[128] = ""; + char option_arg[256] = ""; + struct Curl_easy *data = conn->data; +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + CURLcode result = CURLE_OK; + int binary_option; + +@@ -929,7 +929,7 @@ static void suboption(struct connectdata *conn) + char varname[128] = ""; + char varval[128] = ""; + struct Curl_easy *data = conn->data; +- struct TELNET *tn = (struct TELNET *)data->req.protop; ++ struct TELNET *tn = (struct TELNET *)data->req.p.telnet; + + printsub(data, '<', (unsigned char *)tn->subbuffer, CURL_SB_LEN(tn) + 2); + switch(CURL_SB_GET(tn)) { +@@ -1004,7 +1004,7 @@ static void sendsuboption(struct connectdata *conn, int option) + unsigned char *uc1, *uc2; + + struct Curl_easy *data = conn->data; +- struct TELNET *tn = (struct TELNET *)data->req.protop; ++ struct TELNET *tn = (struct TELNET *)data->req.p.telnet; + + switch(option) { + case CURL_TELOPT_NAWS: +@@ -1062,7 +1062,7 @@ CURLcode telrcv(struct connectdata *conn, + int in = 0; + int startwrite = -1; + struct Curl_easy *data = conn->data; +- struct TELNET *tn = (struct TELNET *)data->req.protop; ++ struct TELNET *tn = (struct TELNET *)data->req.p.telnet; + + #define startskipping() \ + if(startwrite >= 0) { \ +@@ -1280,7 +1280,7 @@ static CURLcode send_telnet_data(struct connectdata *conn, + static CURLcode telnet_done(struct connectdata *conn, + CURLcode status, bool premature) + { +- struct TELNET *tn = (struct TELNET *)conn->data->req.protop; ++ struct TELNET *tn = (struct TELNET *)conn->data->req.p.telnet; + (void)status; /* unused */ + (void)premature; /* not used */ + +@@ -1290,7 +1290,7 @@ static CURLcode telnet_done(struct connectdata *conn, + curl_slist_free_all(tn->telnet_vars); + tn->telnet_vars = NULL; + +- Curl_safefree(conn->data->req.protop); ++ Curl_safefree(conn->data->req.p.telnet); + + return CURLE_OK; + } +@@ -1333,7 +1333,7 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) + if(result) + return result; + +- tn = (struct TELNET *)data->req.protop; ++ tn = data->req.p.telnet; + + result = check_telnet_options(conn); + if(result) +diff --git a/lib/transfer.c b/lib/transfer.c +index a07c7af..4630609 100644 +--- a/lib/transfer.c ++++ b/lib/transfer.c +@@ -167,7 +167,7 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, size_t bytes, + bool sending_http_headers = FALSE; + + if(conn->handler->protocol&(PROTO_FAMILY_HTTP|CURLPROTO_RTSP)) { +- const struct HTTP *http = data->req.protop; ++ const struct HTTP *http = data->req.p.http; + + if(http->sending == HTTPSEND_REQUEST) + /* We're sending the HTTP request headers, not the data. +@@ -426,7 +426,7 @@ CURLcode Curl_readrewind(struct connectdata *conn) + CURLOPT_HTTPPOST, call app to rewind + */ + if(conn->handler->protocol & PROTO_FAMILY_HTTP) { +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + + if(http->sendit) + mimepart = http->sendit; +@@ -1028,7 +1028,7 @@ static CURLcode readwrite_upload(struct Curl_easy *data, + /* HTTP pollution, this should be written nicer to become more + protocol agnostic. */ + size_t fillcount; +- struct HTTP *http = k->protop; ++ struct HTTP *http = k->p.http; + + if((k->exp100 == EXP100_SENDING_REQUEST) && + (http->sending == HTTPSEND_BODY)) { +@@ -1853,7 +1853,7 @@ Curl_setup_transfer( + { + struct SingleRequest *k = &data->req; + struct connectdata *conn = data->conn; +- struct HTTP *http = data->req.protop; ++ struct HTTP *http = data->req.p.http; + bool httpsending = ((conn->handler->protocol&PROTO_FAMILY_HTTP) && + (http->sending == HTTPSEND_REQUEST)); + DEBUGASSERT(conn != NULL); +diff --git a/lib/url.c b/lib/url.c +index 150667a..849d527 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -2060,7 +2060,7 @@ static CURLcode setup_connection_internals(struct connectdata *conn) + + void Curl_free_request_state(struct Curl_easy *data) + { +- Curl_safefree(data->req.protop); ++ Curl_safefree(data->req.p.http); + Curl_safefree(data->req.newurl); + + #ifndef CURL_DISABLE_DOH +diff --git a/lib/urldata.h b/lib/urldata.h +index 0ae9269..76baee3 100644 +--- a/lib/urldata.h ++++ b/lib/urldata.h +@@ -645,8 +645,23 @@ struct SingleRequest { + and the 'upload_present' contains the number of bytes available at this + position */ + char *upload_fromhere; +- void *protop; /* Allocated protocol-specific data. Each protocol +- handler makes sure this points to data it needs. */ ++ ++ /* Allocated protocol-specific data. Each protocol handler makes sure this ++ points to data it needs. */ ++ union { ++ struct FILEPROTO *file; ++ struct FTP *ftp; ++ struct HTTP *http; ++ struct IMAP *imap; ++ struct ldapreqinfo *ldap; ++ struct MQTT *mqtt; ++ struct POP3 *pop3; ++ struct RTSP *rtsp; ++ struct smb_request *smb; ++ struct SMTP *smtp; ++ struct SSHPROTO *ssh; ++ struct TELNET *telnet; ++ } p; + #ifndef CURL_DISABLE_DOH + struct dohdata doh; /* DoH specific data for this request */ + #endif +diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c +index 20ee08d..18eeda8 100644 +--- a/lib/vquic/ngtcp2.c ++++ b/lib/vquic/ngtcp2.c +@@ -962,7 +962,7 @@ static int cb_h3_stream_close(nghttp3_conn *conn, int64_t stream_id, + void *stream_user_data) + { + struct Curl_easy *data = stream_user_data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + (void)conn; + (void)stream_id; + (void)app_error_code; +@@ -1008,7 +1008,7 @@ static int cb_h3_recv_data(nghttp3_conn *conn, int64_t stream_id, + void *user_data, void *stream_user_data) + { + struct Curl_easy *data = stream_user_data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + CURLcode result = CURLE_OK; + (void)conn; + +@@ -1067,7 +1067,7 @@ static int cb_h3_end_headers(nghttp3_conn *conn, int64_t stream_id, + void *user_data, void *stream_user_data) + { + struct Curl_easy *data = stream_user_data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + CURLcode result = CURLE_OK; + (void)conn; + (void)stream_id; +@@ -1091,7 +1091,7 @@ static int cb_h3_recv_header(nghttp3_conn *conn, int64_t stream_id, + nghttp3_vec h3name = nghttp3_rcbuf_get_buf(name); + nghttp3_vec h3val = nghttp3_rcbuf_get_buf(value); + struct Curl_easy *data = stream_user_data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + CURLcode result = CURLE_OK; + (void)conn; + (void)stream_id; +@@ -1255,7 +1255,7 @@ static ssize_t ngh3_stream_recv(struct connectdata *conn, + CURLcode *curlcode) + { + curl_socket_t sockfd = conn->sock[sockindex]; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + struct quicsocket *qs = conn->quic; + + if(!stream->memlen) { +@@ -1313,7 +1313,7 @@ static int cb_h3_acked_stream_data(nghttp3_conn *conn, int64_t stream_id, + void *stream_user_data) + { + struct Curl_easy *data = stream_user_data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + (void)conn; + (void)stream_id; + (void)user_data; +@@ -1335,7 +1335,7 @@ static ssize_t cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id, + { + struct Curl_easy *data = stream_user_data; + size_t nread; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + (void)conn; + (void)stream_id; + (void)user_data; +@@ -1398,7 +1398,7 @@ static ssize_t cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id, + static CURLcode http_request(struct connectdata *conn, const void *mem, + size_t len) + { +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + size_t nheader; + size_t i; + size_t authority_idx; +@@ -1641,7 +1641,7 @@ static ssize_t ngh3_stream_send(struct connectdata *conn, + ssize_t sent; + struct quicsocket *qs = conn->quic; + curl_socket_t sockfd = conn->sock[sockindex]; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + + if(!stream->h3req) { + CURLcode result = http_request(conn, mem, len); +@@ -1909,7 +1909,7 @@ CURLcode Curl_quic_done_sending(struct connectdata *conn) + { + if(conn->handler == &Curl_handler_http3) { + /* only for HTTP/3 transfers */ +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + struct quicsocket *qs = conn->quic; + stream->upload_done = TRUE; + (void)nghttp3_conn_resume_stream(qs->h3conn, stream->stream3_id); +@@ -1926,7 +1926,7 @@ void Curl_quic_done(struct Curl_easy *data, bool premature) + (void)premature; + if(data->conn->handler == &Curl_handler_http3) { + /* only for HTTP/3 transfers */ +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + Curl_dyn_free(&stream->overflow); + } + } +@@ -1941,7 +1941,7 @@ bool Curl_quic_data_pending(const struct Curl_easy *data) + buffer and allocated an overflow buffer. Since it's possible that + there's no more data coming on the socket, we need to keep reading + until the overflow buffer is empty. */ +- const struct HTTP *stream = data->req.protop; ++ const struct HTTP *stream = data->req.p.http; + return Curl_dyn_len(&stream->overflow) > 0; + } + +diff --git a/lib/vquic/quiche.c b/lib/vquic/quiche.c +index fd9cb8b..c0e250d 100644 +--- a/lib/vquic/quiche.c ++++ b/lib/vquic/quiche.c +@@ -131,7 +131,7 @@ static unsigned int quiche_conncheck(struct connectdata *conn, + + static CURLcode quiche_do(struct connectdata *conn, bool *done) + { +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + stream->h3req = FALSE; /* not sent */ + return Curl_http(conn, done); + } +@@ -460,7 +460,7 @@ static ssize_t h3_stream_recv(struct connectdata *conn, + int rc; + struct h3h1header headers; + struct Curl_easy *data = conn->data; +- struct HTTP *stream = data->req.protop; ++ struct HTTP *stream = data->req.p.http; + headers.dest = buf; + headers.destlen = buffersize; + headers.nlen = 0; +@@ -548,7 +548,7 @@ static ssize_t h3_stream_send(struct connectdata *conn, + ssize_t sent; + struct quicsocket *qs = conn->quic; + curl_socket_t sockfd = conn->sock[sockindex]; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + + if(!stream->h3req) { + CURLcode result = http_request(conn, mem, len); +@@ -596,7 +596,7 @@ static CURLcode http_request(struct connectdata *conn, const void *mem, + { + /* + */ +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + size_t nheader; + size_t i; + size_t authority_idx; +@@ -824,7 +824,7 @@ CURLcode Curl_quic_done_sending(struct connectdata *conn) + if(conn->handler == &Curl_handler_http3) { + /* only for HTTP/3 transfers */ + ssize_t sent; +- struct HTTP *stream = conn->data->req.protop; ++ struct HTTP *stream = conn->data->req.p.http; + struct quicsocket *qs = conn->quic; + fprintf(stderr, "!!! Curl_quic_done_sending\n"); + stream->upload_done = TRUE; +diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c +index 8988e23..a84e1bf 100644 +--- a/lib/vssh/libssh.c ++++ b/lib/vssh/libssh.c +@@ -662,7 +662,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SSHPROTO *protop = data->req.protop; ++ struct SSHPROTO *protop = data->req.p.ssh; + struct ssh_conn *sshc = &conn->proto.sshc; + curl_socket_t sock = conn->sock[FIRSTSOCKET]; + int rc = SSH_NO_ERROR, err; +@@ -2129,7 +2129,7 @@ static CURLcode myssh_setup_connection(struct connectdata *conn) + { + struct SSHPROTO *ssh; + +- conn->data->req.protop = ssh = calloc(1, sizeof(struct SSHPROTO)); ++ conn->data->req.p.ssh = ssh = calloc(1, sizeof(struct SSHPROTO)); + if(!ssh) + return CURLE_OUT_OF_MEMORY; + +@@ -2152,7 +2152,7 @@ static CURLcode myssh_connect(struct connectdata *conn, bool *done) + int rc; + + /* initialize per-handle data if not already */ +- if(!data->req.protop) ++ if(!data->req.p.ssh) + myssh_setup_connection(conn); + + /* We default to persistent connections. We set this already in this connect +@@ -2353,7 +2353,7 @@ static CURLcode scp_disconnect(struct connectdata *conn, + static CURLcode myssh_done(struct connectdata *conn, CURLcode status) + { + CURLcode result = CURLE_OK; +- struct SSHPROTO *protop = conn->data->req.protop; ++ struct SSHPROTO *protop = conn->data->req.p.ssh; + + if(!status) { + /* run the state-machine */ +@@ -2606,7 +2606,7 @@ static void sftp_quote(struct connectdata *conn) + { + const char *cp; + struct Curl_easy *data = conn->data; +- struct SSHPROTO *protop = data->req.protop; ++ struct SSHPROTO *protop = data->req.p.ssh; + struct ssh_conn *sshc = &conn->proto.sshc; + CURLcode result; + +diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c +index 4f56bb4..3ed777f 100644 +--- a/lib/vssh/libssh2.c ++++ b/lib/vssh/libssh2.c +@@ -789,7 +789,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) + { + CURLcode result = CURLE_OK; + struct Curl_easy *data = conn->data; +- struct SSHPROTO *sftp_scp = data->req.protop; ++ struct SSHPROTO *sftp_scp = data->req.p.ssh; + struct ssh_conn *sshc = &conn->proto.sshc; + curl_socket_t sock = conn->sock[FIRSTSOCKET]; + int rc = LIBSSH2_ERROR_NONE; +@@ -2989,7 +2989,7 @@ static CURLcode ssh_setup_connection(struct connectdata *conn) + { + struct SSHPROTO *ssh; + +- conn->data->req.protop = ssh = calloc(1, sizeof(struct SSHPROTO)); ++ conn->data->req.p.ssh = ssh = calloc(1, sizeof(struct SSHPROTO)); + if(!ssh) + return CURLE_OUT_OF_MEMORY; + +@@ -3013,7 +3013,7 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done) + struct Curl_easy *data = conn->data; + + /* initialize per-handle data if not already */ +- if(!data->req.protop) ++ if(!data->req.p.ssh) + ssh_setup_connection(conn); + + /* We default to persistent connections. We set this already in this connect +@@ -3192,7 +3192,7 @@ static CURLcode scp_disconnect(struct connectdata *conn, bool dead_connection) + static CURLcode ssh_done(struct connectdata *conn, CURLcode status) + { + CURLcode result = CURLE_OK; +- struct SSHPROTO *sftp_scp = conn->data->req.protop; ++ struct SSHPROTO *sftp_scp = conn->data->req.p.ssh; + + if(!status) { + /* run the state-machine */ +diff --git a/lib/vssh/wolfssh.c b/lib/vssh/wolfssh.c +index dcbbab6..1b990e3 100644 +--- a/lib/vssh/wolfssh.c ++++ b/lib/vssh/wolfssh.c +@@ -322,7 +322,7 @@ static CURLcode wssh_setup_connection(struct connectdata *conn) + { + struct SSHPROTO *ssh; + +- conn->data->req.protop = ssh = calloc(1, sizeof(struct SSHPROTO)); ++ conn->data->req.p.ssh = ssh = calloc(1, sizeof(struct SSHPROTO)); + if(!ssh) + return CURLE_OUT_OF_MEMORY; + +@@ -356,7 +356,7 @@ static CURLcode wssh_connect(struct connectdata *conn, bool *done) + int rc; + + /* initialize per-handle data if not already */ +- if(!data->req.protop) ++ if(!data->req.p.ssh) + wssh_setup_connection(conn); + + /* We default to persistent connections. We set this already in this connect +@@ -429,7 +429,7 @@ static CURLcode wssh_statemach_act(struct connectdata *conn, bool *block) + CURLcode result = CURLE_OK; + struct ssh_conn *sshc = &conn->proto.sshc; + struct Curl_easy *data = conn->data; +- struct SSHPROTO *sftp_scp = data->req.protop; ++ struct SSHPROTO *sftp_scp = data->req.p.ssh; + WS_SFTPNAME *name; + int rc = 0; + *block = FALSE; /* we're not blocking by default */ +@@ -1027,7 +1027,7 @@ static CURLcode wssh_block_statemach(struct connectdata *conn, + static CURLcode wssh_done(struct connectdata *conn, CURLcode status) + { + CURLcode result = CURLE_OK; +- struct SSHPROTO *sftp_scp = conn->data->req.protop; ++ struct SSHPROTO *sftp_scp = conn->data->req.p.ssh; + + if(!status) { + /* run the state-machine */ diff --git a/meta/recipes-support/curl/curl/CVE-2020-8284.patch b/meta/recipes-support/curl/curl/CVE-2020-8284.patch new file mode 100644 index 0000000000..4ae514ffa8 --- /dev/null +++ b/meta/recipes-support/curl/curl/CVE-2020-8284.patch @@ -0,0 +1,210 @@ +From ec9cc725d598ac77de7b6df8afeec292b3c8ad46 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <daniel@haxx.se> +Date: Tue, 24 Nov 2020 14:56:57 +0100 +Subject: [PATCH] ftp: CURLOPT_FTP_SKIP_PASV_IP by default + +The command line tool also independently sets --ftp-skip-pasv-ip by +default. + +Ten test cases updated to adapt the modified --libcurl output. + +Bug: https://curl.se/docs/CVE-2020-8284.html +CVE-2020-8284 + +Reported-by: Varnavas Papaioannou + +Upstream-Status: Backport [https://github.com/curl/curl/commit/ec9cc725d598ac] + +CVE: CVE-2020-8284 + +Signed-off-by: Daniel Stenberg <daniel@haxx.se> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> +--- + docs/cmdline-opts/ftp-skip-pasv-ip.d | 2 ++ + docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 | 8 +++++--- + lib/url.c | 1 + + src/tool_cfgable.c | 1 + + tests/data/test1400 | 1 + + tests/data/test1401 | 1 + + tests/data/test1402 | 1 + + tests/data/test1403 | 1 + + tests/data/test1404 | 1 + + tests/data/test1405 | 1 + + tests/data/test1406 | 1 + + tests/data/test1407 | 1 + + tests/data/test1420 | 1 + + 14 files changed, 18 insertions(+), 3 deletions(-) + +diff --git a/docs/cmdline-opts/ftp-skip-pasv-ip.d b/docs/cmdline-opts/ftp-skip-pasv-ip.d +index d6fd4589b1e..bcf4e7e62f2 100644 +--- a/docs/cmdline-opts/ftp-skip-pasv-ip.d ++++ b/docs/cmdline-opts/ftp-skip-pasv-ip.d +@@ -10,4 +10,6 @@ to curl's PASV command when curl connects the data connection. Instead curl + will re-use the same IP address it already uses for the control + connection. + ++Since curl 7.74.0 this option is enabled by default. ++ + This option has no effect if PORT, EPRT or EPSV is used instead of PASV. +diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 +index d6217d0d8ca..fa87ddce769 100644 +--- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 ++++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 +@@ -5,7 +5,7 @@ + .\" * | (__| |_| | _ <| |___ + .\" * \___|\___/|_| \_\_____| + .\" * +-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. ++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. + .\" * + .\" * This software is licensed as described in the file COPYING, which + .\" * you should have received as part of this distribution. The terms +@@ -35,11 +35,13 @@ address it already uses for the control connection. But it will use the port + number from the 227-response. + + This option thus allows libcurl to work around broken server installations +-that due to NATs, firewalls or incompetence report the wrong IP address back. ++that due to NATs, firewalls or incompetence report the wrong IP address ++back. Setting the option also reduces the risk for various sorts of client ++abuse by malicious servers. + + This option has no effect if PORT, EPRT or EPSV is used instead of PASV. + .SH DEFAULT +-0 ++1 since 7.74.0, was 0 before then. + .SH PROTOCOLS + FTP + .SH EXAMPLE +diff --git a/lib/url.c b/lib/url.c +index f8b2a0030de..2b0ba87ba87 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -497,6 +497,7 @@ CURLcode Curl_init_userdefined(struct Curl_easy *data) + set->ftp_use_eprt = TRUE; /* FTP defaults to EPRT operations */ + set->ftp_use_pret = FALSE; /* mainly useful for drftpd servers */ + set->ftp_filemethod = FTPFILE_MULTICWD; ++ set->ftp_skip_ip = TRUE; /* skip PASV IP by default */ + #endif + set->dns_cache_timeout = 60; /* Timeout every 60 seconds by default */ + +diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c +index c52d8e1c6bb..4c06d3557b7 100644 +--- a/src/tool_cfgable.c ++++ b/src/tool_cfgable.c +@@ -44,6 +44,7 @@ void config_init(struct OperationConfig *config) + config->tcp_nodelay = TRUE; /* enabled by default */ + config->happy_eyeballs_timeout_ms = CURL_HET_DEFAULT; + config->http09_allowed = FALSE; ++ config->ftp_skip_ip = TRUE; + } + + static void free_config_fields(struct OperationConfig *config) +diff --git a/tests/data/test1400 b/tests/data/test1400 +index 812ad0b88d9..b7060eca58e 100644 +--- a/tests/data/test1400 ++++ b/tests/data/test1400 +@@ -73,6 +73,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped"); + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1401 b/tests/data/test1401 +index f93b3d637de..a2629683aff 100644 +--- a/tests/data/test1401 ++++ b/tests/data/test1401 +@@ -87,6 +87,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt(hnd, CURLOPT_COOKIE, "chocolate=chip"); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + curl_easy_setopt(hnd, CURLOPT_PROTOCOLS, (long)CURLPROTO_FILE | + (long)CURLPROTO_FTP | +diff --git a/tests/data/test1402 b/tests/data/test1402 +index 7593c516da1..1bd55cb4e3b 100644 +--- a/tests/data/test1402 ++++ b/tests/data/test1402 +@@ -78,6 +78,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped"); + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1403 b/tests/data/test1403 +index ecb4dd3dcab..a7c9fcca322 100644 +--- a/tests/data/test1403 ++++ b/tests/data/test1403 +@@ -73,6 +73,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped"); + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1404 b/tests/data/test1404 +index 97622b63948..1d8e8cf7779 100644 +--- a/tests/data/test1404 ++++ b/tests/data/test1404 +@@ -147,6 +147,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped"); + curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1405 b/tests/data/test1405 +index 2bac79eda74..b4087704f7b 100644 +--- a/tests/data/test1405 ++++ b/tests/data/test1405 +@@ -89,6 +89,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_POSTQUOTE, slist2); + curl_easy_setopt(hnd, CURLOPT_PREQUOTE, slist3); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1406 b/tests/data/test1406 +index 51a166adff2..38f68d11ee1 100644 +--- a/tests/data/test1406 ++++ b/tests/data/test1406 +@@ -79,6 +79,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_URL, "smtp://%HOSTIP:%SMTPPORT/1406"); + curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + curl_easy_setopt(hnd, CURLOPT_MAIL_FROM, "sender@example.com"); + curl_easy_setopt(hnd, CURLOPT_MAIL_RCPT, slist1); +diff --git a/tests/data/test1407 b/tests/data/test1407 +index f6879008fb2..a7e13ba7585 100644 +--- a/tests/data/test1407 ++++ b/tests/data/test1407 +@@ -62,6 +62,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_DIRLISTONLY, 1L); + curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret"); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated +diff --git a/tests/data/test1420 b/tests/data/test1420 +index 057ecc4773a..4b8d7bbf418 100644 +--- a/tests/data/test1420 ++++ b/tests/data/test1420 +@@ -67,6 +67,7 @@ int main(int argc, char *argv[]) + curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/1420/;MAILINDEX=1"); + curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret"); + curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); ++ curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); + curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); + + /* Here is a list of options the curl code used that cannot get generated + diff --git a/meta/recipes-support/curl/curl/CVE-2020-8285.patch b/meta/recipes-support/curl/curl/CVE-2020-8285.patch new file mode 100644 index 0000000000..8a0231ba84 --- /dev/null +++ b/meta/recipes-support/curl/curl/CVE-2020-8285.patch @@ -0,0 +1,257 @@ +From 69a358f2186e04cf44698b5100332cbf1ee7f01d Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <daniel@haxx.se> +Date: Sat, 28 Nov 2020 00:27:21 +0100 +Subject: [PATCH] ftp: make wc_statemach loop instead of recurse + +CVE-2020-8285 + +Fixes #6255 +Bug: https://curl.se/docs/CVE-2020-8285.html +Reported-by: xnynx on github + +Upstream-Status: Backport [https://github.com/curl/curl/commit/69a358f2186e04] + +CVE: CVE-2020-8285 + +Signed-off-by: Daniel Stenberg <daniel@haxx.se> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> +--- + lib/ftp.c | 202 +++++++++++++++++++++++++++--------------------------- + 1 file changed, 102 insertions(+), 100 deletions(-) + +diff --git a/lib/ftp.c b/lib/ftp.c +index 50e7d7ddac9..bc355742172 100644 +--- a/lib/ftp.c ++++ b/lib/ftp.c +@@ -3800,129 +3800,131 @@ static CURLcode init_wc_data(struct connectdata *conn) + return result; + } + +-/* This is called recursively */ + static CURLcode wc_statemach(struct connectdata *conn) + { + struct WildcardData * const wildcard = &(conn->data->wildcard); + CURLcode result = CURLE_OK; + +- switch(wildcard->state) { +- case CURLWC_INIT: +- result = init_wc_data(conn); +- if(wildcard->state == CURLWC_CLEAN) +- /* only listing! */ +- break; +- wildcard->state = result ? CURLWC_ERROR : CURLWC_MATCHING; +- break; ++ for(;;) { ++ switch(wildcard->state) { ++ case CURLWC_INIT: ++ result = init_wc_data(conn); ++ if(wildcard->state == CURLWC_CLEAN) ++ /* only listing! */ ++ return result; ++ wildcard->state = result ? CURLWC_ERROR : CURLWC_MATCHING; ++ return result; + +- case CURLWC_MATCHING: { +- /* In this state is LIST response successfully parsed, so lets restore +- previous WRITEFUNCTION callback and WRITEDATA pointer */ +- struct ftp_wc *ftpwc = wildcard->protdata; +- conn->data->set.fwrite_func = ftpwc->backup.write_function; +- conn->data->set.out = ftpwc->backup.file_descriptor; +- ftpwc->backup.write_function = ZERO_NULL; +- ftpwc->backup.file_descriptor = NULL; +- wildcard->state = CURLWC_DOWNLOADING; +- +- if(Curl_ftp_parselist_geterror(ftpwc->parser)) { +- /* error found in LIST parsing */ +- wildcard->state = CURLWC_CLEAN; +- return wc_statemach(conn); +- } +- if(wildcard->filelist.size == 0) { +- /* no corresponding file */ +- wildcard->state = CURLWC_CLEAN; +- return CURLE_REMOTE_FILE_NOT_FOUND; ++ case CURLWC_MATCHING: { ++ /* In this state is LIST response successfully parsed, so lets restore ++ previous WRITEFUNCTION callback and WRITEDATA pointer */ ++ struct ftp_wc *ftpwc = wildcard->protdata; ++ conn->data->set.fwrite_func = ftpwc->backup.write_function; ++ conn->data->set.out = ftpwc->backup.file_descriptor; ++ ftpwc->backup.write_function = ZERO_NULL; ++ ftpwc->backup.file_descriptor = NULL; ++ wildcard->state = CURLWC_DOWNLOADING; ++ ++ if(Curl_ftp_parselist_geterror(ftpwc->parser)) { ++ /* error found in LIST parsing */ ++ wildcard->state = CURLWC_CLEAN; ++ continue; ++ } ++ if(wildcard->filelist.size == 0) { ++ /* no corresponding file */ ++ wildcard->state = CURLWC_CLEAN; ++ return CURLE_REMOTE_FILE_NOT_FOUND; ++ } ++ continue; + } +- return wc_statemach(conn); +- } + +- case CURLWC_DOWNLOADING: { +- /* filelist has at least one file, lets get first one */ +- struct ftp_conn *ftpc = &conn->proto.ftpc; +- struct curl_fileinfo *finfo = wildcard->filelist.head->ptr; +- struct FTP *ftp = conn->data->req.p.ftp; ++ case CURLWC_DOWNLOADING: { ++ /* filelist has at least one file, lets get first one */ ++ struct ftp_conn *ftpc = &conn->proto.ftpc; ++ struct curl_fileinfo *finfo = wildcard->filelist.head->ptr; ++ struct FTP *ftp = conn->data->req.p.ftp; + +- char *tmp_path = aprintf("%s%s", wildcard->path, finfo->filename); +- if(!tmp_path) +- return CURLE_OUT_OF_MEMORY; ++ char *tmp_path = aprintf("%s%s", wildcard->path, finfo->filename); ++ if(!tmp_path) ++ return CURLE_OUT_OF_MEMORY; + +- /* switch default ftp->path and tmp_path */ +- free(ftp->pathalloc); +- ftp->pathalloc = ftp->path = tmp_path; +- +- infof(conn->data, "Wildcard - START of \"%s\"\n", finfo->filename); +- if(conn->data->set.chunk_bgn) { +- long userresponse; +- Curl_set_in_callback(conn->data, true); +- userresponse = conn->data->set.chunk_bgn( +- finfo, wildcard->customptr, (int)wildcard->filelist.size); +- Curl_set_in_callback(conn->data, false); +- switch(userresponse) { +- case CURL_CHUNK_BGN_FUNC_SKIP: +- infof(conn->data, "Wildcard - \"%s\" skipped by user\n", +- finfo->filename); +- wildcard->state = CURLWC_SKIP; +- return wc_statemach(conn); +- case CURL_CHUNK_BGN_FUNC_FAIL: +- return CURLE_CHUNK_FAILED; ++ /* switch default ftp->path and tmp_path */ ++ free(ftp->pathalloc); ++ ftp->pathalloc = ftp->path = tmp_path; ++ ++ infof(conn->data, "Wildcard - START of \"%s\"\n", finfo->filename); ++ if(conn->data->set.chunk_bgn) { ++ long userresponse; ++ Curl_set_in_callback(conn->data, true); ++ userresponse = conn->data->set.chunk_bgn( ++ finfo, wildcard->customptr, (int)wildcard->filelist.size); ++ Curl_set_in_callback(conn->data, false); ++ switch(userresponse) { ++ case CURL_CHUNK_BGN_FUNC_SKIP: ++ infof(conn->data, "Wildcard - \"%s\" skipped by user\n", ++ finfo->filename); ++ wildcard->state = CURLWC_SKIP; ++ continue; ++ case CURL_CHUNK_BGN_FUNC_FAIL: ++ return CURLE_CHUNK_FAILED; ++ } + } +- } + +- if(finfo->filetype != CURLFILETYPE_FILE) { +- wildcard->state = CURLWC_SKIP; +- return wc_statemach(conn); +- } ++ if(finfo->filetype != CURLFILETYPE_FILE) { ++ wildcard->state = CURLWC_SKIP; ++ continue; ++ } + +- if(finfo->flags & CURLFINFOFLAG_KNOWN_SIZE) +- ftpc->known_filesize = finfo->size; ++ if(finfo->flags & CURLFINFOFLAG_KNOWN_SIZE) ++ ftpc->known_filesize = finfo->size; + +- result = ftp_parse_url_path(conn); +- if(result) +- return result; ++ result = ftp_parse_url_path(conn); ++ if(result) ++ return result; + +- /* we don't need the Curl_fileinfo of first file anymore */ +- Curl_llist_remove(&wildcard->filelist, wildcard->filelist.head, NULL); ++ /* we don't need the Curl_fileinfo of first file anymore */ ++ Curl_llist_remove(&wildcard->filelist, wildcard->filelist.head, NULL); + +- if(wildcard->filelist.size == 0) { /* remains only one file to down. */ +- wildcard->state = CURLWC_CLEAN; +- /* after that will be ftp_do called once again and no transfer +- will be done because of CURLWC_CLEAN state */ +- return CURLE_OK; ++ if(wildcard->filelist.size == 0) { /* remains only one file to down. */ ++ wildcard->state = CURLWC_CLEAN; ++ /* after that will be ftp_do called once again and no transfer ++ will be done because of CURLWC_CLEAN state */ ++ return CURLE_OK; ++ } ++ return result; + } +- } break; + +- case CURLWC_SKIP: { +- if(conn->data->set.chunk_end) { +- Curl_set_in_callback(conn->data, true); +- conn->data->set.chunk_end(conn->data->wildcard.customptr); +- Curl_set_in_callback(conn->data, false); ++ case CURLWC_SKIP: { ++ if(conn->data->set.chunk_end) { ++ Curl_set_in_callback(conn->data, true); ++ conn->data->set.chunk_end(conn->data->wildcard.customptr); ++ Curl_set_in_callback(conn->data, false); ++ } ++ Curl_llist_remove(&wildcard->filelist, wildcard->filelist.head, NULL); ++ wildcard->state = (wildcard->filelist.size == 0) ? ++ CURLWC_CLEAN : CURLWC_DOWNLOADING; ++ continue; + } +- Curl_llist_remove(&wildcard->filelist, wildcard->filelist.head, NULL); +- wildcard->state = (wildcard->filelist.size == 0) ? +- CURLWC_CLEAN : CURLWC_DOWNLOADING; +- return wc_statemach(conn); +- } + +- case CURLWC_CLEAN: { +- struct ftp_wc *ftpwc = wildcard->protdata; +- result = CURLE_OK; +- if(ftpwc) +- result = Curl_ftp_parselist_geterror(ftpwc->parser); ++ case CURLWC_CLEAN: { ++ struct ftp_wc *ftpwc = wildcard->protdata; ++ result = CURLE_OK; ++ if(ftpwc) ++ result = Curl_ftp_parselist_geterror(ftpwc->parser); + +- wildcard->state = result ? CURLWC_ERROR : CURLWC_DONE; +- } break; ++ wildcard->state = result ? CURLWC_ERROR : CURLWC_DONE; ++ return result; ++ } + +- case CURLWC_DONE: +- case CURLWC_ERROR: +- case CURLWC_CLEAR: +- if(wildcard->dtor) +- wildcard->dtor(wildcard->protdata); +- break; ++ case CURLWC_DONE: ++ case CURLWC_ERROR: ++ case CURLWC_CLEAR: ++ if(wildcard->dtor) ++ wildcard->dtor(wildcard->protdata); ++ return result; ++ } + } +- +- return result; ++ /* UNREACHABLE */ + } + + /*********************************************************************** diff --git a/meta/recipes-support/curl/curl/CVE-2020-8286.patch b/meta/recipes-support/curl/curl/CVE-2020-8286.patch new file mode 100644 index 0000000000..8c75cba844 --- /dev/null +++ b/meta/recipes-support/curl/curl/CVE-2020-8286.patch @@ -0,0 +1,131 @@ +From 5d3b28deac44c19e4d73fc80e4917d42ee43adfe Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <daniel@haxx.se> +Date: Wed, 2 Dec 2020 23:01:11 +0100 +Subject: [PATCH] openssl: make the OCSP verification verify the certificate id + +CVE-2020-8286 + +Reported by anonymous + +Bug: https://curl.se/docs/CVE-2020-8286.html + +Upstream-Status: Backport [https://github.com/curl/curl/commit/d9d01672785b] + +CVE: CVE-2020-8286 + +Signed-off-by: Daniel Stenberg <daniel@haxx.se> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> + +--- + lib/vtls/openssl.c | 83 +++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 54 insertions(+), 29 deletions(-) + +diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c +index 1685a4a..22cbfe7 100644 +--- a/lib/vtls/openssl.c ++++ b/lib/vtls/openssl.c +@@ -1777,6 +1777,11 @@ static CURLcode verifystatus(struct connectdata *conn, + X509_STORE *st = NULL; + STACK_OF(X509) *ch = NULL; + struct ssl_backend_data *backend = connssl->backend; ++ X509 *cert; ++ OCSP_CERTID *id = NULL; ++ int cert_status, crl_reason; ++ ASN1_GENERALIZEDTIME *rev, *thisupd, *nextupd; ++ int ret; + + long len = SSL_get_tlsext_status_ocsp_resp(backend->handle, &status); + +@@ -1845,43 +1850,63 @@ static CURLcode verifystatus(struct connectdata *conn, + goto end; + } + +- for(i = 0; i < OCSP_resp_count(br); i++) { +- int cert_status, crl_reason; +- OCSP_SINGLERESP *single = NULL; +- +- ASN1_GENERALIZEDTIME *rev, *thisupd, *nextupd; ++ /* Compute the certificate's ID */ ++ cert = SSL_get_peer_certificate(backend->handle); ++ if(!cert) { ++ failf(data, "Error getting peer certficate"); ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ goto end; ++ } + +- single = OCSP_resp_get0(br, i); +- if(!single) +- continue; ++ for(i = 0; i < sk_X509_num(ch); i++) { ++ X509 *issuer = sk_X509_value(ch, i); ++ if(X509_check_issued(issuer, cert) == X509_V_OK) { ++ id = OCSP_cert_to_id(EVP_sha1(), cert, issuer); ++ break; ++ } ++ } ++ X509_free(cert); + +- cert_status = OCSP_single_get0_status(single, &crl_reason, &rev, +- &thisupd, &nextupd); ++ if(!id) { ++ failf(data, "Error computing OCSP ID"); ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ goto end; ++ } + +- if(!OCSP_check_validity(thisupd, nextupd, 300L, -1L)) { +- failf(data, "OCSP response has expired"); +- result = CURLE_SSL_INVALIDCERTSTATUS; +- goto end; +- } ++ /* Find the single OCSP response corresponding to the certificate ID */ ++ ret = OCSP_resp_find_status(br, id, &cert_status, &crl_reason, &rev, ++ &thisupd, &nextupd); ++ OCSP_CERTID_free(id); ++ if(ret != 1) { ++ failf(data, "Could not find certificate ID in OCSP response"); ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ goto end; ++ } + +- infof(data, "SSL certificate status: %s (%d)\n", +- OCSP_cert_status_str(cert_status), cert_status); ++ /* Validate the corresponding single OCSP response */ ++ if(!OCSP_check_validity(thisupd, nextupd, 300L, -1L)) { ++ failf(data, "OCSP response has expired"); ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ goto end; ++ } + +- switch(cert_status) { +- case V_OCSP_CERTSTATUS_GOOD: +- break; ++ infof(data, "SSL certificate status: %s (%d)\n", ++ OCSP_cert_status_str(cert_status), cert_status); + +- case V_OCSP_CERTSTATUS_REVOKED: +- result = CURLE_SSL_INVALIDCERTSTATUS; ++ switch(cert_status) { ++ case V_OCSP_CERTSTATUS_GOOD: ++ break; + +- failf(data, "SSL certificate revocation reason: %s (%d)", +- OCSP_crl_reason_str(crl_reason), crl_reason); +- goto end; ++ case V_OCSP_CERTSTATUS_REVOKED: ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ failf(data, "SSL certificate revocation reason: %s (%d)", ++ OCSP_crl_reason_str(crl_reason), crl_reason); ++ goto end; + +- case V_OCSP_CERTSTATUS_UNKNOWN: +- result = CURLE_SSL_INVALIDCERTSTATUS; +- goto end; +- } ++ case V_OCSP_CERTSTATUS_UNKNOWN: ++ default: ++ result = CURLE_SSL_INVALIDCERTSTATUS; ++ goto end; + } + + end: diff --git a/meta/recipes-support/curl/curl_7.72.0.bb b/meta/recipes-support/curl/curl_7.72.0.bb index 7d0268253d..a9b52a8a1d 100644 --- a/meta/recipes-support/curl/curl_7.72.0.bb +++ b/meta/recipes-support/curl/curl_7.72.0.bb @@ -7,6 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" SRC_URI = "https://curl.haxx.se/download/curl-${PV}.tar.bz2 \ file://0001-replace-krb5-config-with-pkg-config.patch \ + file://0002-remove-void-protop-create-union-p.patch \ + file://CVE-2020-8284.patch \ + file://CVE-2020-8285.patch \ + file://CVE-2020-8286.patch \ " SRC_URI[sha256sum] = "ad91970864102a59765e20ce16216efc9d6ad381471f7accceceab7d905703ef" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 03/14] selftest: Add argument to keep build dir 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 01/14] license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 02/14] curl: Fix CVE-2020-8284, CVE-2020-8285, CVE-2020-8286 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 04/14] bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS Anuj Mittal ` (10 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Paul Barker <pbarker@konsulko.com> The oe-selftest code already keeps the selftest build directory in place if any tests failed. By default the build directory is deleted if all tests pass but there may be cases where it's desirable to keep this directory around, for example to compare intermediate files between passing and failing test runs. Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 67aa7069dbe8f5f5f186eb67708ece5c4bd42976) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/lib/oeqa/selftest/context.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index dd3609c1d6..1659926975 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py @@ -34,7 +34,7 @@ class NonConcurrentTestSuite(unittest.TestSuite): (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite) ret = super().run(result) os.chdir(builddir) - if newbuilddir and ret.wasSuccessful(): + if newbuilddir and ret.wasSuccessful() and self.removefunc: self.removefunc(newbuilddir) def removebuilddir(d): @@ -54,7 +54,7 @@ def removebuilddir(d): bb.utils.prunedir(d, ionice=True) class OESelftestTestContext(OETestContext): - def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None): + def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None, keep_builddir=None): super(OESelftestTestContext, self).__init__(td, logger) self.machines = machines @@ -62,6 +62,11 @@ class OESelftestTestContext(OETestContext): self.config_paths = config_paths self.newbuilddir = newbuilddir + if keep_builddir: + self.removebuilddir = None + else: + self.removebuilddir = removebuilddir + def setup_builddir(self, suffix, selftestdir, suite): builddir = os.environ['BUILDDIR'] if not selftestdir: @@ -119,9 +124,9 @@ class OESelftestTestContext(OETestContext): if processes: from oeqa.core.utils.concurrencytest import ConcurrentTestSuite - return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) + return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir) else: - return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) + return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir) def runTests(self, processes=None, machine=None, skips=[]): if machine: @@ -179,6 +184,9 @@ class OESelftestTestContextExecutor(OETestContextExecutor): action='append', default=None, help='Exclude all (unhidden) tests that match any of the specified tag(s). (exclude applies before select)') + parser.add_argument('-K', '--keep-builddir', action='store_true', + help='Keep the test build directory even if all tests pass') + parser.add_argument('-B', '--newbuilddir', help='New build directory to use for tests.') parser.add_argument('-v', '--verbose', action='store_true') parser.set_defaults(func=self.run) @@ -236,6 +244,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor): self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf") self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf") self.tc_kwargs['init']['newbuilddir'] = args.newbuilddir + self.tc_kwargs['init']['keep_builddir'] = args.keep_builddir def tag_filter(tags): if args.exclude_tags: -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 04/14] bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (2 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 03/14] selftest: Add argument to keep build dir Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 05/14] pseudo: Update to print PSEUDO_LOGFILE in abort message on path mismatches Anuj Mittal ` (9 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Richard Purdie <richard.purdie@linuxfoundation.org> Builds were failing on WSL2 which turns out to be due to accesses to /run/ on those systems. Add this to PSEUDO_IGNORE_PATHS to fix builds on WSL2. [YOCTO #14175] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 1d1bf51217e8b4d54af28739d3271484ee5a7974) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/conf/bitbake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index da6db9f595..8e0a0ec4b4 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -685,7 +685,7 @@ SRC_URI = "" PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/" PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}" PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native" -PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR}" +PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,/run/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR}" export PSEUDO_DISABLED = "1" #export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 05/14] pseudo: Update to print PSEUDO_LOGFILE in abort message on path mismatches 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (3 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 04/14] bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 06/14] pseudo: Drop patches merged into upstream branch Anuj Mittal ` (8 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 9259d684415e3e7923de74359a4ed3487e0e9da7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb index 2e13fec540..600885b5c2 100644 --- a/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://fallback-group \ " -SRCREV = "cca0d7f15b7197095cd587420d31b187620c3093" +SRCREV = "69f205c41902e17933b81b1450636848e8da2126" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 06/14] pseudo: Drop patches merged into upstream branch 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (4 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 05/14] pseudo: Update to print PSEUDO_LOGFILE in abort message on path mismatches Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 07/14] pseudo: Add lchmod wrapper Anuj Mittal ` (7 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 7386a116222979e6de60c39d2c094d5f216fb101) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb index 600885b5c2..78c6b01f09 100644 --- a/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://fallback-group \ " -SRCREV = "69f205c41902e17933b81b1450636848e8da2126" +SRCREV = "6fd57da7b1de1a2b6cf530e336d58bb5f8bdd015" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 07/14] pseudo: Add lchmod wrapper 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (5 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 06/14] pseudo: Drop patches merged into upstream branch Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 08/14] pseudo: Update for arm host and memleak fixes/cleanup Anuj Mittal ` (6 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Richard Purdie <richard.purdie@linuxfoundation.org> New versions of glibc have an lchmod function so we need to wrap it. Identified through a reproducibility issue in initramfs-base where /dev/console created by mknod from coreutils changed permissions depending on the host distro (mknod used the gnulib wrapper on most hosts but newer ones used the libc call). [YOCTO #14162] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 20a645664977530e602e1ac97e8dc0962e730e6c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb index 78c6b01f09..7fa11a54e7 100644 --- a/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://fallback-group \ " -SRCREV = "6fd57da7b1de1a2b6cf530e336d58bb5f8bdd015" +SRCREV = "1ee9a1e05e200f189f6644411ba9304e8a479b0b" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 08/14] pseudo: Update for arm host and memleak fixes/cleanup 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (6 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 07/14] pseudo: Add lchmod wrapper Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 09/14] mobile-broadband-provider-info: upgrade 20190618 ->20201225 Anuj Mittal ` (5 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Richard Purdie <richard.purdie@linuxfoundation.org> Pulls in: makewrappers: support architecture-overrides in wrapper modifiers makewrappers: fix Python 2 hangover Fix some memory leaks Disable deprecated function warnings Silence switch block warnings pseudo_util: don't overrun strings when looking for keys Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 11a3a9203ad595e7fa92acf442a7f3216d6e3830) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb index 7fa11a54e7..29fa9152e2 100644 --- a/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://fallback-group \ " -SRCREV = "1ee9a1e05e200f189f6644411ba9304e8a479b0b" +SRCREV = "f9754ac14672c4af19b77bc698a1a808b0828265" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 09/14] mobile-broadband-provider-info: upgrade 20190618 ->20201225 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (7 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 08/14] pseudo: Update for arm host and memleak fixes/cleanup Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 10/14] glibc: CVE-2019-25013 Anuj Mittal ` (4 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Wang Mingyu <wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 812eb3121e0aabe4e3de9a8c61b1e62c87f55aa4) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- .../mobile-broadband-provider-info_git.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb index 0b0bbab168..7dccc15e03 100644 --- a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb +++ b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb @@ -3,8 +3,8 @@ HOMEPAGE = "http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProvider SECTION = "network" LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04" -SRCREV = "22b49d86fb7aded2c195a9d49e5924da696b3228" -PV = "20190618" +SRCREV = "90f3fe28aa25135b7e4a54a7816388913bfd4a2a" +PV = "20201225" PE = "1" SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 10/14] glibc: CVE-2019-25013 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (8 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 09/14] mobile-broadband-provider-info: upgrade 20190618 ->20201225 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 11/14] ffmpeg: Fix CVE-2020-35964, CVE-2020-35965 Anuj Mittal ` (3 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Scott Murray <scott.murray@konsulko.com> * CVE detail: https://nvd.nist.gov/vuln/detail/CVE-2019-25013 * upstream tracking: https://sourceware.org/bugzilla/show_bug.cgi?id=24973 * patch from upstream: https://sourceware.org/git/?p=glibc.git;a=patch; h=ee7a3144c9922808181009b7b3e50e852fb4999b Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 53d149df4d8832e34ace2470c31ddc688176faf7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- .../glibc/glibc/CVE-2019-25013.patch | 137 ++++++++++++++++++ meta/recipes-core/glibc/glibc_2.32.bb | 1 + 2 files changed, 138 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/CVE-2019-25013.patch diff --git a/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch b/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch new file mode 100644 index 0000000000..987e959db2 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/CVE-2019-25013.patch @@ -0,0 +1,137 @@ +From ee7a3144c9922808181009b7b3e50e852fb4999b Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@suse.de> +Date: Mon, 21 Dec 2020 08:56:43 +0530 +Subject: [PATCH] Fix buffer overrun in EUC-KR conversion module (bz #24973) + +The byte 0xfe as input to the EUC-KR conversion denotes a user-defined +area and is not allowed. The from_euc_kr function used to skip two bytes +when told to skip over the unknown designation, potentially running over +the buffer end. + +Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=patch;h=ee7a3144c9922808181009b7b3e50e852fb4999b] +CVE: CVE-2019-25013 +Signed-off-by: Scott Murray <scott.murray@konsulko.com> +--- + iconvdata/Makefile | 3 ++- + iconvdata/bug-iconv13.c | 53 +++++++++++++++++++++++++++++++++++++++++ + iconvdata/euc-kr.c | 6 +---- + iconvdata/ksc5601.h | 6 ++--- + 4 files changed, 59 insertions(+), 9 deletions(-) + create mode 100644 iconvdata/bug-iconv13.c + +diff --git a/iconvdata/Makefile b/iconvdata/Makefile +index 4ec2741cdc..85009f3390 100644 +--- a/iconvdata/Makefile ++++ b/iconvdata/Makefile +@@ -73,7 +73,8 @@ modules.so := $(addsuffix .so, $(modules)) + ifeq (yes,$(build-shared)) + tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ + tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ +- bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 ++ bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \ ++ bug-iconv13 + ifeq ($(have-thread-library),yes) + tests += bug-iconv3 + endif +diff --git a/iconvdata/bug-iconv13.c b/iconvdata/bug-iconv13.c +new file mode 100644 +index 0000000000..87aaff398e +--- /dev/null ++++ b/iconvdata/bug-iconv13.c +@@ -0,0 +1,53 @@ ++/* bug 24973: Test EUC-KR module ++ Copyright (C) 2020 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <https://www.gnu.org/licenses/>. */ ++ ++#include <errno.h> ++#include <iconv.h> ++#include <stdio.h> ++#include <support/check.h> ++ ++static int ++do_test (void) ++{ ++ iconv_t cd = iconv_open ("UTF-8//IGNORE", "EUC-KR"); ++ TEST_VERIFY_EXIT (cd != (iconv_t) -1); ++ ++ /* 0xfe (->0x7e : row 94) and 0xc9 (->0x49 : row 41) are user-defined ++ areas, which are not allowed and should be skipped over due to ++ //IGNORE. The trailing 0xfe also is an incomplete sequence, which ++ should be checked first. */ ++ char input[4] = { '\xc9', '\xa1', '\0', '\xfe' }; ++ char *inptr = input; ++ size_t insize = sizeof (input); ++ char output[4]; ++ char *outptr = output; ++ size_t outsize = sizeof (output); ++ ++ /* This used to crash due to buffer overrun. */ ++ TEST_VERIFY (iconv (cd, &inptr, &insize, &outptr, &outsize) == (size_t) -1); ++ TEST_VERIFY (errno == EINVAL); ++ /* The conversion should produce one character, the converted null ++ character. */ ++ TEST_VERIFY (sizeof (output) - outsize == 1); ++ ++ TEST_VERIFY_EXIT (iconv_close (cd) != -1); ++ ++ return 0; ++} ++ ++#include <support/test-driver.c> +diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c +index b0d56cf3ee..1045bae926 100644 +--- a/iconvdata/euc-kr.c ++++ b/iconvdata/euc-kr.c +@@ -80,11 +80,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp) + \ + if (ch <= 0x9f) \ + ++inptr; \ +- /* 0xfe(->0x7e : row 94) and 0xc9(->0x59 : row 41) are \ +- user-defined areas. */ \ +- else if (__builtin_expect (ch == 0xa0, 0) \ +- || __builtin_expect (ch > 0xfe, 0) \ +- || __builtin_expect (ch == 0xc9, 0)) \ ++ else if (__glibc_unlikely (ch == 0xa0)) \ + { \ + /* This is illegal. */ \ + STANDARD_FROM_LOOP_ERR_HANDLER (1); \ +diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h +index d3eb3a4ff8..f5cdc72797 100644 +--- a/iconvdata/ksc5601.h ++++ b/iconvdata/ksc5601.h +@@ -50,15 +50,15 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) + unsigned char ch2; + int idx; + ++ if (avail < 2) ++ return 0; ++ + /* row 94(0x7e) and row 41(0x49) are user-defined area in KS C 5601 */ + + if (ch < offset || (ch - offset) <= 0x20 || (ch - offset) >= 0x7e + || (ch - offset) == 0x49) + return __UNKNOWN_10646_CHAR; + +- if (avail < 2) +- return 0; +- + ch2 = (*s)[1]; + if (ch2 < offset || (ch2 - offset) <= 0x20 || (ch2 - offset) >= 0x7f) + return __UNKNOWN_10646_CHAR; +-- +2.27.0 + diff --git a/meta/recipes-core/glibc/glibc_2.32.bb b/meta/recipes-core/glibc/glibc_2.32.bb index b850c28c78..d43c8c56cb 100644 --- a/meta/recipes-core/glibc/glibc_2.32.bb +++ b/meta/recipes-core/glibc/glibc_2.32.bb @@ -46,6 +46,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ file://0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch \ file://CVE-2020-29562.patch \ file://CVE-2020-29573.patch \ + file://CVE-2019-25013.patch \ " S = "${WORKDIR}/git" B = "${WORKDIR}/build-${TARGET_SYS}" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 11/14] ffmpeg: Fix CVE-2020-35964, CVE-2020-35965 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (9 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 10/14] glibc: CVE-2019-25013 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 12/14] linux-yocto/5.4: update to v5.4.87 Anuj Mittal ` (2 subsequent siblings) 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> Backport the CVE patches from upstream: https://github.com/FFmpeg/FFmpeg/commit/27a99e2c7d450fef15594671eef4465c8a166bd7 https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b CVE: CVE-2020-35964 CVE-2020-35965 Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 526ee4ca2c493de1ac494b69e5ce9a9e55835c3a) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- .../ffmpeg/ffmpeg/CVE-2020-35964.patch | 75 +++++++++++++++++++ .../ffmpeg/ffmpeg/CVE-2020-35965.patch | 35 +++++++++ .../recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb | 2 + 3 files changed, 112 insertions(+) create mode 100644 meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch create mode 100644 meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch new file mode 100644 index 0000000000..6b96bd674f --- /dev/null +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch @@ -0,0 +1,75 @@ +From 27a99e2c7d450fef15594671eef4465c8a166bd7 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer <michael@niedermayer.cc> +Date: Wed, 28 Oct 2020 20:11:54 +0100 +Subject: [PATCH] avformat/vividas: improve extradata packing checks in + track_header() + +Fixes: out of array accesses +Fixes: 26622/clusterfuzz-testcase-minimized-ffmpeg_dem_VIVIDAS_fuzzer-6581200338288640 + +Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg +Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> + +Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/27a99e2c7d450fef15594671eef4465c8a166bd7] + +CVE: CVE-2020-35964 + +Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> +--- + libavformat/vividas.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libavformat/vividas.c b/libavformat/vividas.c +index 83d0ed116787..46c66bf9a0ae 100644 +--- a/libavformat/vividas.c ++++ b/libavformat/vividas.c +@@ -28,6 +28,7 @@ + * @sa http://wiki.multimedia.cx/index.php?title=Vividas_VIV + */ + ++#include "libavutil/avassert.h" + #include "libavutil/intreadwrite.h" + #include "avio_internal.h" + #include "avformat.h" +@@ -379,7 +380,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * + + if (avio_tell(pb) < off) { + int num_data; +- int xd_size = 0; ++ int xd_size = 1; + int data_len[256]; + int offset = 1; + uint8_t *p; +@@ -393,10 +394,10 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * + return AVERROR_INVALIDDATA; + } + data_len[j] = len; +- xd_size += len; ++ xd_size += len + 1 + len/255; + } + +- ret = ff_alloc_extradata(st->codecpar, 64 + xd_size + xd_size / 255); ++ ret = ff_alloc_extradata(st->codecpar, xd_size); + if (ret < 0) + return ret; + +@@ -405,9 +406,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * + + for (j = 0; j < num_data - 1; j++) { + unsigned delta = av_xiphlacing(&p[offset], data_len[j]); +- if (delta > data_len[j]) { +- return AVERROR_INVALIDDATA; +- } ++ av_assert0(delta <= xd_size - offset); + offset += delta; + } + +@@ -418,6 +417,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * + av_freep(&st->codecpar->extradata); + break; + } ++ av_assert0(data_len[j] <= xd_size - offset); + offset += data_len[j]; + } + diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch new file mode 100644 index 0000000000..ddab8e9aca --- /dev/null +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch @@ -0,0 +1,35 @@ +From 3e5959b3457f7f1856d997261e6ac672bba49e8b Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer <michael@niedermayer.cc> +Date: Sat, 24 Oct 2020 22:21:48 +0200 +Subject: [PATCH] avcodec/exr: Check ymin vs. h + +Fixes: out of array access +Fixes: 26532/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344 +Fixes: 27443/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5631239813595136 + +Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg +Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> + +Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b] + +CVE: CVE-2020-35965 + +Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> +Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> +--- + libavcodec/exr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/exr.c b/libavcodec/exr.c +index e907c5c46401..8b701d1cd298 100644 +--- a/libavcodec/exr.c ++++ b/libavcodec/exr.c +@@ -1830,7 +1830,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, + // Zero out the start if ymin is not 0 + for (i = 0; i < planes; i++) { + ptr = picture->data[i]; +- for (y = 0; y < s->ymin; y++) { ++ for (y = 0; y < FFMIN(s->ymin, s->h); y++) { + memset(ptr, 0, out_line_size); + ptr += picture->linesize[i]; + } diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb index 37647e8ec5..f902b08811 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb @@ -26,6 +26,8 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ file://mips64_cpu_detection.patch \ file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \ + file://CVE-2020-35964.patch \ + file://CVE-2020-35965.patch \ " SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 12/14] linux-yocto/5.4: update to v5.4.87 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (10 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 11/14] ffmpeg: Fix CVE-2020-35964, CVE-2020-35965 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 13/14] binutils: upgrade 2.35 -> 2.35.1 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 14/14] systemd: upgrade 246.6 -> 246.9 Anuj Mittal 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Bruce Ashfield <bruce.ashfield@gmail.com> Updating linux-yocto/5.4 to the latest korg -stable release that comprises the following commits: b3f656a592f3 Linux 5.4.87 41ae3e574ccf dm verity: skip verity work if I/O error when system is shutting down 8b3c00977264 ALSA: pcm: Clear the full allocated memory at hw_params 480abac78e03 tick/sched: Remove bogus boot "safety" check 1dab82dd202d um: ubd: Submit all data segments atomically d32747bb687d fs/namespace.c: WARN if mnt_count has become negative 9f4e8026d202 module: delay kobject uevent until after module init call 86db71810a27 f2fs: avoid race condition for shrinker count dbe184f6be1e NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode d52faa7fb12f i3c master: fix missing destroy_workqueue() on error in i3c_master_register 22f815627c64 powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe() a95049c51417 rtc: pl031: fix resource leak in pl031_probe e2926630f653 quota: Don't overflow quota file offsets 1842dde0dd13 module: set MODULE_STATE_GOING state when a module fails to load 569da7c3d9a3 rtc: sun6i: Fix memleak in sun6i_rtc_clk_init 642c2d74c365 fcntl: Fix potential deadlock in send_sig{io, urg}() 5b2f1ad6b12b bfs: don't use WARNING: string when it's just info. 3a2a5e197a84 ALSA: rawmidi: Access runtime->avail always in spinlock 8d2204a05391 ALSA: seq: Use bool for snd_seq_queue internal flags 4250fe65b2e6 f2fs: fix shift-out-of-bounds in sanity_check_raw_super() 28a29e3a658a media: gp8psk: initialize stats at power control logic 750627d36f84 misc: vmw_vmci: fix kernel info-leak by initializing dbells in vmci_ctx_get_chkpt_doorbells() 01be033cc127 reiserfs: add check for an invalid ih_entry_count 18e1101b0ee9 Bluetooth: hci_h5: close serdev device and free hu in h5_close b726f8602207 scsi: cxgb4i: Fix TLS dependency 57ba2c7a50bf cgroup: Fix memory leak when parsing multiple source parameters 8ddf02859c69 of: fix linker-section match-table corruption 8ec95e308418 null_blk: Fix zone size initialization 7c3d8d73bafd tools headers UAPI: Sync linux/const.h with the kernel headers 376c3111413c uapi: move constants from <linux/kernel.h> to <linux/const.h> af07e4dd0783 scsi: block: Fix a race in the runtime power management code 9ce7ac5ed53b jffs2: Fix NULL pointer dereference in rp_size fs option parsing 3a83e289e4b7 jffs2: Allow setting rp_size to zero during remounting ee78e7d93e35 powerpc/bitops: Fix possible undefined behaviour with fls() and fls64() 7cb6087b4536 KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits 3d4a05894500 KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses d77c1ab54c9e KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL 11459136a107 ext4: don't remount read-only with errors=continue on reboot 6b0a4f603d5b btrfs: fix race when defragmenting leads to unnecessary IO 30aea96ff142 vfio/pci: Move dummy_resources_list init in vfio_pci_probe() 29c2d3e91e3d fscrypt: remove kernel-internal constants from UAPI header 34f000524d33 fscrypt: add fscrypt_is_nokey_name() eddc69467e39 f2fs: prevent creating duplicate encrypted filenames 6fe20a5204a6 ubifs: prevent creating duplicate encrypted filenames 3ebfed353afd ext4: prevent creating duplicate encrypted filenames faa72d97c3e3 thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed d3076d054f3e md/raid10: initialize r10_bio->read_slot before use. c71c512f4a65 net/sched: sch_taprio: reset child qdiscs before freeing them dfce803cd87d Linux 5.4.86 8302bd9afd4b x86/CPU/AMD: Save AMD NodeId as cpu_die_id 6001db0272da Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS" 33afcf723a0e rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time 7e0f7a293608 regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x be23b04074b1 PCI: Fix pci_slot_release() NULL pointer dereference b1f9419d5e6c platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12 c16b5849352c libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels 68d139a97415 xenbus/xenbus_backend: Disallow pending watch messages d3eaea062b51 xen/xenbus: Count pending messages for each watch c45b0a8d2a68 xen/xenbus/xen_bus_type: Support will_handle watch callback 7da6db982e53 xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path() eac0c12e329d xen/xenbus: Allow watches discard events before queueing 8f3f6de44f7c xen-blkback: set ring->xenblkd to NULL after kthread_stop() 383c60c16dd8 dma-buf/dma-resv: Respect num_fences when initializing the shared fence list. b16a6a46e0b2 device-dax/core: Fix memory leak when rmmod dax.ko f3ede933fbc7 clk: tegra: Do not return 0 on failure f133bfbe1201 clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9 ca4fd0284cb3 clk: ingenic: Fix divider calculation with div tables 13e6b6259e6d pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler 2fb550de7563 md/cluster: fix deadlock when node is doing resync job 7523d147087b md/cluster: block reshape with remote resync job 27b58f6adad8 iio:adc:ti-ads124s08: Fix alignment and data leak issues. 2d7229c037d1 iio:adc:ti-ads124s08: Fix buffer being too long. d6ea1d559027 iio:imu:bmi160: Fix too large a buffer. 91b7b231f5e7 iio:pressure:mpl3115: Force alignment of buffer 9607d22e71d1 iio:magnetometer:mag3110: Fix alignment and data leak issues. 71a326dcd2a8 iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. c18fc255187f iio:light:rpr0521: Fix timestamp alignment and prevent data leak. 860ab67cd81e iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume 0fa2b43b0a2a iio: buffer: Fix demux update 82af6e44b7d4 scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free() 7ec7630548dc scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc() 6822575cf204 scsi: qla2xxx: Fix crash during driver load on big endian machines 1b26af7e4c7f mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments c5f3e5ca8116 mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read 2aea2b22b6f9 mtd: parser: cmdline: Fix parsing of part-names with colons 4290a73c9d67 mtd: spinand: Fix OOB read b22739509dcb soc: qcom: smp2p: Safely acquire spinlock without IRQs ddcb518dee78 spi: atmel-quadspi: Fix AHB memory accesses 96f7bd39f56f spi: atmel-quadspi: Disable clock in probe error path 8f295baae53d spi: mt7621: Don't leak SPI master in probe error path 0818aab8a82b spi: mt7621: Disable clock in probe error path cad189512c38 spi: synquacer: Disable clock in probe error path 4051e5b7741b spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path 3c0e28f2881e spi: sc18is602: Don't leak SPI master in probe error path 819f9edaaeb9 spi: rb4xx: Don't leak SPI master in probe error path c5491ac11559 spi: pic32: Don't leak DMA channels in probe error path 3ea835ac604b spi: mxic: Don't leak SPI master in probe error path 0da7709f5ea3 spi: gpio: Don't leak SPI master in probe error path ee1d2aef1c13 spi: fsl: fix use of spisel_boot signal on MPC8309 614f2529c8ea spi: davinci: Fix use-after-free on unbind c6b9bfb0c477 spi: atmel-quadspi: Fix use-after-free on unbind bd6d736dbf36 spi: spi-sh: Fix use-after-free on unbind 17360c3af129 spi: pxa2xx: Fix use-after-free on unbind c5ae864c148c drm/i915: Fix mismatch between misplaced vma check and vma insert 1e684ad37047 drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() e1b1f10c3404 drm/amd/display: Fix memory leaks in S3 resume b966771b0d69 platform/x86: mlx-platform: remove an unused variable cbeb61258186 jfs: Fix array index bounds check in dbAdjTree 8ee70b6db882 jffs2: Fix ignoring mounting options problem during remounting 00e45efaf9ff jffs2: Fix GC exit abnormally ea1e4ba032c5 ubifs: wbuf: Don't leak kernel memory to flash 32825fe72cb3 SMB3: avoid confusing warning message on mount to Azure f22f743a2af2 ceph: fix race in concurrent __ceph_remove_cap invocations a7b014b54c16 um: Remove use of asprinf in umid.c 26d72a8460dc ima: Don't modify file descriptor mode on the fly a89b91fcb07c powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently 45bf367c8550 powerpc/powernv/memtrace: Don't leak kernel memory to user space 59334d821e8a powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU c7f66ad880a9 powerpc/mm: Fix verification of MMU_FTR_TYPE_44x 32e29541b5aa powerpc/8xx: Fix early debug when SMC1 is relocated 15c9e56b41d0 powerpc/xmon: Change printk() to pr_cont() c7b89d0d7186 powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE 0f157acd436c powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter 30a58a3f7c85 powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at 3ee6a2bc1428 xprtrdma: Fix XDRBUF_SPARSE_PAGES support 2504e407a39f ARM: dts: at91: sama5d2: fix CAN message ram offset and size 789246b9afe8 ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES 6ee6e4e5a4cf KVM: arm64: Introduce handling of AArch32 TTBCR2 traps 8635f0fe06c5 ext4: fix deadlock with fs freezing and EA inodes c90a5f4851a8 ext4: fix a memory leak of ext4_free_data e21d630a2c0d btrfs: trim: fix underflow in trim length to prevent access beyond device boundary 1d11ed122f6f btrfs: do not shorten unpin len for caching block groups af7414836d88 USB: serial: keyspan_pda: fix write unthrottling 7dae22ba62b2 USB: serial: keyspan_pda: fix tx-unthrottle use-after-free f99817ab5821 USB: serial: keyspan_pda: fix write-wakeup use-after-free a07b690e1976 USB: serial: keyspan_pda: fix stalled writes 0f13247fabaf USB: serial: keyspan_pda: fix write deadlock ebd9857a5bd4 USB: serial: keyspan_pda: fix dropped unthrottle interrupts 89fb2b91a9da USB: serial: digi_acceleport: fix write-wakeup deadlocks 08c24438fb10 USB: serial: mos7720: fix parallel-port state restore 6eab3f646b1a cpuset: fix race between hotplug work and later CPU offline 066d115fdd29 EDAC/amd64: Fix PCI component registration f4ce4a53c4e4 EDAC/i10nm: Use readl() to access MMIO registers f9189a3bb5f9 crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata 36a58bda87cd crypto: ecdh - avoid unaligned accesses in ecdh_set_secret() f26f0e7770a1 powerpc/perf: Exclude kernel samples while counting events in user space. 8096a2c6b9f6 perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake aa3cce9ceff0 perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY 1e3de428d155 staging: comedi: mf6x4: Fix AI end-of-conversion detection ee0bcb1721a5 ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams 5fbf84689f11 binder: add flag to clear buffer on txn complete a7c256a9fd18 s390/dasd: fix list corruption of lcu list 9c40d69a3be2 s390/dasd: fix list corruption of pavgroup group list 042683917f4b s390/dasd: prevent inconsistent LCU device data c8acd8d55bb9 s390/dasd: fix hanging device offline processing 3038bbd1bb33 s390/kexec_file: fix diag308 subcode when loading crash kernel c185f13918b4 s390/smp: perform initial CPU reset also for SMT siblings 48d3f12869ef ALSA: core: memalloc: add page alignment for iram cd3ff2a46d9c ALSA: usb-audio: Disable sample read check if firmware doesn't give back b1e3c2fb0fbe ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices 58cb166b1f8a ALSA: hda/realtek: Apply jack fixup for Quanta NL3 b61b2aa91f2b ALSA: hda/realtek: Add quirk for MSI-GP73 89d429ed2cdf ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G 0bf907442c5f ALSA: pcm: oss: Fix a few more UBSAN fixes 11cd11af4058 ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button da723248c5f8 ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255 010a784a1a27 ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256 0fc8e6b85680 ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop 52d09e0cdb78 ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg. 1ca2437530e5 ALSA: hda: Fix regressions on clear and reconfig sysfs 2c6c6001d077 ACPI: PNP: compare the string length in the matching_id() 772dd826a44b Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" b9d93a666656 PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() 670b1b7e0d53 ALSA: hda/ca0132 - Change Input Source enum strings. 8f827adb9bbc Input: cyapa_gen6 - fix out-of-bounds stack access 98c956a6d9f7 media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE f05ac76139e6 media: ipu3-cio2: Validate mbus format in setting subdev format 44cb512a020e media: ipu3-cio2: Serialise access to pad format a47bc844f436 media: ipu3-cio2: Return actual subdev format 7dc40e1f8044 media: ipu3-cio2: Remove traces of returned buffers d7e6b7b6a7f7 media: netup_unidvb: Don't leak SPI master in probe error path 0bfbb8393e51 media: sunxi-cir: ensure IR is handled when it is continuous 124dc7d4f4b6 media: gspca: Fix memory leak in probe f97b54c8152d vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU df308380cbf3 Input: goodix - add upside-down quirk for Teclast X98 Pro tablet 070bd3a8ac55 initramfs: fix clang build failure f252a9953249 Input: cros_ec_keyb - send 'scancodes' in addition to key events 2686041cef06 drm/amdkfd: Fix leak in dmabuf import dc06432d9304 drm/amd/display: Prevent bandwidth overflow ca49d919d79c lwt: Disable BH too in run_lwt_bpf() b8dfee234581 fix namespaced fscaps when !CONFIG_SECURITY 5350b833bb0a cfg80211: initialize rekey_data ec15d0700709 ARM: sunxi: Add machine match for the Allwinner V3 SoC d629b50f9fdc perf probe: Fix memory leak when synthesizing SDT probes cbcb176b6016 kconfig: fix return value of do_error_if() 6e8beb020d5c clk: sunxi-ng: Make sure divider tables have sentinel 3cdeedf801b5 clk: s2mps11: Fix a resource leak in error handling paths in the probe function ef56621a579a clk: at91: sam9x60: remove atmel,osc-bypass support e01dfcc08b55 virtio_ring: Fix two use after free bugs 2d65ff873d06 virtio_net: Fix error code in probe() 5f70910832c7 virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed() 372f06cd6b89 qlcnic: Fix error code in probe c16e42c93241 perf record: Fix memory leak when using '--user-regs=?' to list registers ceadde18f69a pwm: lp3943: Dynamically allocate PWM chip base 6bf2ef4bd38d pwm: zx: Add missing cleanup in error path d4515a24a802 clk: ti: Fix memleak in ti_fapll_synth_setup 572eba1ce574 watchdog: coh901327: add COMMON_CLK dependency 2b1575e28906 watchdog: qcom: Avoid context switch in restart handler fad88d462596 libnvdimm/label: Return -ENXIO for no slot in __blk_label_update b6c680755d22 net: korina: fix return value 19e73c9ff0bf net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function 226bcdbb4a60 net: bcmgenet: Fix a resource leak in an error handling path in the probe functin efc570073cbe lan743x: fix rx_napi_poll/interrupt ping-pong 9f5b56b5a71d checkpatch: fix unescaped left brace b32c5e0ae6f7 mm: don't wake kswapd prematurely when watermark boosting is disabled c3bf90c6aac5 sparc: fix handling of page table constructor failure 6ef298e1cebd powerpc/ps3: use dma_mapping_error() d864e7e8270a nfc: s3fwrn5: Release the nfc firmware 7a3d6a5dfc78 RDMA/cma: Don't overwrite sgid_attr after device is released 2d01f3d75013 sunrpc: fix xs_read_xdr_buf for partial pages receive 4acbc03e4fed um: chan_xterm: Fix fd leak 1bbd5678c0b4 um: tty: Fix handling of close in tty lines 1355bbe3a717 um: Monitor error events in IRQ controller a37d283825a4 ubifs: Fix error return code in ubifs_init_authentication() d4dbcfb7e158 watchdog: Fix potential dereferencing of null pointer 4e091ff107be watchdog: sprd: check busy bit before new loading rather than after that 4c8cffffc926 watchdog: sprd: remove watchdog disable from resume fail path 4a4b31e8b5a7 watchdog: sirfsoc: Add missing dependency on HAS_IOMEM 4d5aea30c1cd watchdog: armada_37xx: Add missing dependency on HAS_IOMEM 849270acd7b6 irqchip/alpine-msi: Fix freeing of interrupts on allocation error path aca4d1bd7e19 ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control() 297e48ccf166 mac80211: don't set set TDLS STA bandwidth wider than possible d07972d764e8 crypto: atmel-i2c - select CONFIG_BITREVERSE f71984fc4482 extcon: max77693: Fix modalias string a4fd2da3e85e mtd: rawnand: gpmi: Fix the random DMA timeout issue 86f6e53642fa mtd: rawnand: meson: Fix a resource leak in init 5e8715b2383a mtd: rawnand: gpmi: fix reference count leak in gpmi ops 9c5b041ba20a clk: tegra: Fix duplicated SE clock entry 1ba196a73c45 remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio() 6f597c451e07 remoteproc: qcom: fix reference leak in adsp_start f61bce4bc833 remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable 9b54e31fd08f RDMA/core: Do not indicate device ready when device enablement fails e6323070bdc7 can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit 6daf2d466380 erofs: avoid using generic_block_bmap 35e2bec96488 iwlwifi: mvm: hook up missing RX handlers 857b1403c3e5 s390/cio: fix use-after-free in ccw_device_destroy_console be4d879cb7c4 bus: fsl-mc: fix error return code in fsl_mc_object_allocate() 9b4f327c0746 platform/chrome: cros_ec_spi: Don't overwrite spi::mode 070c57885ec3 x86/kprobes: Restore BTF if the single-stepping is cancelled 353b19562a03 nfs_common: need lock during iterate through the list 48ed3e57ad58 nfsd: Fix message level for normal termination b4ac244716f3 speakup: fix uninitialized flush_lock 989d52723643 usb: oxu210hp-hcd: Fix memory leak in oxu_create 2addd726083f usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe 3f72486cecec powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S a696ed262e83 ASoC: amd: change clk_get() to devm_clk_get() and add missed checks 972db497be45 drm/mediatek: avoid dereferencing a null hdmi_phy on an error message ef55a3c384cc powerpc/pseries/hibernation: remove redundant cacheinfo update c4115721d1f0 powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops 570697132c2c platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems a247efe47743 scsi: fnic: Fix error return code in fnic_probe() 0e724f2e80ba seq_buf: Avoid type mismatch for seq_buf_init 0b93626d3965 scsi: pm80xx: Fix error return in pm8001_pci_probe() 79e14f1c323c scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe 172bb906202f arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements 13f4c61d2f5c ARM: dts: meson: fix PHY deassert timing requirements 154105c0ba56 arm64: dts: meson: fix PHY deassert timing requirements 62b240d2644e Bluetooth: btmtksdio: Add the missed release_firmware() in mtk_setup_firmware() 097c4d9921b2 Bluetooth: btusb: Add the missed release_firmware() in btusb_mtk_setup_firmware() 3d3caa8e971d cpufreq: scpi: Add missing MODULE_ALIAS 6e34c9478fe5 cpufreq: loongson1: Add missing MODULE_ALIAS 3e3feeb0d2ba cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE ef802b5a5e26 cpufreq: st: Add missing MODULE_DEVICE_TABLE 742697643c94 cpufreq: qcom: Add missing MODULE_DEVICE_TABLE c9d204c02825 cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE f3754eec127d cpufreq: highbank: Add missing MODULE_DEVICE_TABLE e32836221017 cpufreq: ap806: Add missing MODULE_DEVICE_TABLE 3b6ba2fe6524 clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI b4219894d154 clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne e223cf39b928 phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure 675b3ba9cc96 dm ioctl: fix error return code in target_message d863d76536df ASoC: jz4740-i2s: add missed checks for clk_get() 1b760dc9d967 net/mlx5: Properly convey driver version to firmware a64822872957 MIPS: Don't round up kernel sections size for memblock_add() 33eeb395515d memstick: r592: Fix error return in r592_probe() e39b37d6a2ce arm64: dts: rockchip: Fix UART pull-ups on rk3328 33892a3797f1 pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() 08e22710601a bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address() e02d218aa63d ARM: dts: at91: sama5d2: map securam as device da8890329599 iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context d903b80e1abc clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent() 742d5de6c2fc clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path 40f9ac2b0295 powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S 4968cc5ed0c0 powerpc/perf: Fix crash with is_sier_available when pmu is not set b0483a32d163 media: saa7146: fix array overflow in vidioc_s_audio() bfdf000e5dd9 hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable a0f07c9ad72d vfio-pci: Use io_remap_pfn_range() for PCI IO memory 5ac81a4e5fa3 selftests/seccomp: Update kernel config 0588b8a03469 NFS: switch nfsiod to be an UNBOUND workqueue. 1094bd2edaa2 lockd: don't use interval-based rebinding over TCP cbb0a57326b8 net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' a0842124422e NFSv4: Fix the alignment of page data in the getdeviceinfo reply 73892eef6d9e SUNRPC: xprt_load_transport() needs to support the netid "rdma6" 2823b8979375 NFSv4.2: condition READDIR's mask for security label based on LSM state 04e9c169810c SUNRPC: rpc_wake_up() should wake up tasks in the correct order a3ac7dd8b16b ath10k: Release some resources in an error handling path 6b6edd2c072b ath10k: Fix an error handling path e856abba7fca ath10k: Fix the parsing error in service available event f4935d3c7b57 platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init 3d64e8ce592b ARM: dts: at91: at91sam9rl: fix ADC triggers 09347a537cc7 soc: amlogic: canvas: add missing put_device() call in meson_canvas_get() 8424a5b661ca arm64: dts: meson-sm1: fix typo in opp table f4951cb10668 arm64: dts: meson: fix spi-max-frequency on Khadas VIM2 49b563bfdd66 PCI: iproc: Fix out-of-bound array accesses 4ef5a46d2964 PCI: Fix overflow in command-line resource alignment requests 048b98083c27 PCI: Bounds-check command-line resource alignment requests 72577f162cae arm64: dts: qcom: c630: Polish i2c-hid devices a554b68baf27 arm64: dts: ls1028a: fix ENETC PTP clock input a85f3e7cb717 genirq/irqdomain: Don't try to free an interrupt that has no mapping 2f00dcc6ce7a power: supply: bq24190_charger: fix reference leak e230e193c966 power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching 8e9678d9d131 arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc 11f007a5583d arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name 5a551ef11669 ARM: dts: Remove non-existent i2c1 from 98dx3236 15305a5b103d HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() ec30659ea631 slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI 76170933d3da media: max2175: fix max2175_set_csm_mode() error code 5873beee8744 mips: cdmm: fix use-after-free in mips_cdmm_bus_discover 51795c385f73 media: imx214: Fix stop streaming ceff135b9d93 samples: bpf: Fix lwt_len_hist reusing previous BPF map 4dc1360203c4 platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform configuration 3432883ae896 platform/x86: mlx-platform: Remove PSU EEPROM from default platform configuration c14a740743f7 media: siano: fix memory leak of debugfs members in smsdvb_hotplug 6b93d6c5a888 arm64: tegra: Fix DT binding for IO High Voltage entry b0f1878c2d88 dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() 46f8c7961168 cw1200: fix missing destroy_workqueue() on error in cw1200_init_common f2e7f608b274 rsi: fix error return code in rsi_reset_card() f7a6e378fc17 qtnfmac: fix error return code in qtnf_pcie_probe() d2b95947720d orinoco: Move context allocation after processing the skb e39908568b40 mmc: pxamci: Fix error return code in pxamci_probe 65f0d3c81c9f ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host c2aab53d1be5 ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host 8ce91557023e memstick: fix a double-free bug in memstick_check 4279ff6deaf3 RDMA/cxgb4: Validate the number of CQEs d3ff603c2e38 clk: meson: Kconfig: fix dependency for G12A 2fbd2b0dd7d1 Input: omap4-keypad - fix runtime PM error handling ff3a152243f8 drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe e16e8cde2bb1 soc: ti: Fix reference imbalance in knav_dma_probe 475b489b0713 soc: ti: knav_qmss: fix reference leak in knav_queue_probe 82b9934e1e7a spi: fix resource leak for drivers without .remove callback 70e19fccf680 crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe c549355105d9 crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd 3e08a61b2f94 EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId 0789349204a6 powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 90b39366d834 powerpc: Avoid broken GCC __attribute__((optimize)) 8f6e6ec101dd selftests/bpf: Fix broken riscv build 6f8c6e70738a spi: mxs: fix reference leak in mxs_spi_probe 5df04553ee8c usb/max3421: fix return error code in max3421_probe() e6405aad3592 Input: ads7846 - fix unaligned access on 7845 920c379029f9 Input: ads7846 - fix integer overflow on Rt calculation c7ac50927300 Input: ads7846 - fix race that causes missing releases 86398df4b283 drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() e8cd88c3ab00 video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init() 953379fb7ba3 media: solo6x10: fix missing snd_card_free in error handling case c64d2e159829 scsi: core: Fix VPD LUN ID designator priorities efb57c87d8d8 ASoC: meson: fix COMPILE_TEST error 2c06ac46f81c media: v4l2-fwnode: Return -EINVAL for invalid bus-type d8d35c1ea883 media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm() c8adf58057b6 media: mtk-vcodec: add missing put_device() call in mtk_vcodec_release_dec_pm() c5c403db137f media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm() 06a3c11c173b media: tm6000: Fix sizeof() mismatches 1638c7e3985b staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c aa1d8b959455 staging: greybus: codecs: Fix reference counter leak in error handling 5daf659fdf47 crypto: qat - fix status check in qat_hal_put_rel_rd_xfer() 38017f2c06cf MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA 9e779e6fae58 RDMa/mthca: Work around -Wenum-conversion warning 648b9dd270ff ASoC: arizona: Fix a wrong free in wm8997_probe 7e8200d44200 spi: sprd: fix reference leak in sprd_spi_remove c786bc725d8c ASoC: wm8998: Fix PM disable depth imbalance on error 06fa588c7921 selftest/bpf: Add missed ip6ip6 test back dab5973ada6b mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure 404aadf45c71 spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume 769c2fecefd1 spi: tegra114: fix reference leak in tegra spi ops 47595d68cee2 spi: tegra20-sflash: fix reference leak in tegra_sflash_resume f9e5e84eb49f spi: tegra20-slink: fix reference leak in slink ops of tegra20 0a3196271b40 spi: mt7621: fix missing clk_disable_unprepare() on error in mt7621_spi_probe a2cf358aacf5 spi: spi-ti-qspi: fix reference leak in ti_qspi_setup 25b5a48adabf Bluetooth: hci_h5: fix memory leak in h5_close 5cf3c2e7892e Bluetooth: Fix null pointer dereference in hci_event_packet() d92b81fad01c arm64: dts: exynos: Correct psci compatible used on Exynos7 da8d84637522 arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7 8f14da44523c brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free} 5c5b92c1d6ab spi: stm32: fix reference leak in stm32_spi_resume c807042f2d58 selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling ae54a6d99478 ASoC: pcm: DRAIN support reactivation 009a982ea25b spi: spi-mem: fix reference leak in spi_mem_access_start 68ad1bd244bd drm/msm/dsi_pll_10nm: restore VCO rate during restore_state 0a8f14baed8e f2fs: call f2fs_get_meta_page_retry for nat page 311da238f2f7 spi: img-spfi: fix reference leak in img_spfi_resume 4e20cee19c2e powerpc/64: Set up a kernel stack for secondaries before cpu_restore() 3988d96589d9 drm/amdgpu: fix build_coefficients() argument a4110e76e550 ARM: dts: aspeed: tiogapass: Remove vuart 129df833e15c ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode 9edff753ade7 crypto: inside-secure - Fix sizeof() mismatch 7044a69699f3 crypto: talitos - Fix return type of current_desc_hdr() 8a73ee0a0a1e crypto: talitos - Endianess in current_desc_hdr() b9b8429042bd drm/amdgpu: fix incorrect enum type 52f525f2bdc7 sched: Reenable interrupts in do_sched_yield() 35975f2e83a5 sched/deadline: Fix sched_dl_global_validate() a3ec54b95c1a x86/apic: Fix x2apic enablement without interrupt remapping b7ec74246c32 ARM: p2v: fix handling of LPAE translation in BE mode 0a72e7286c67 x86/mm/ident_map: Check for errors from ident_pud_init() 0fd78ab5ef71 RDMA/rxe: Compute PSN windows correctly 35f18561616f ARM: dts: aspeed: s2600wf: Fix VGA memory region location 4aae08a71e68 selinux: fix error initialization in inode_doinit_with_dentry() de49a51e7938 rtc: pcf2127: fix pcf2127_nvmem_read/write() returns 57df1b39d990 RDMA/bnxt_re: Set queue pair state when being queried e11c7d39fa7e Revert "i2c: i2c-qcom-geni: Fix DMA transfer race" 4b3ee79fbe77 soc: qcom: geni: More properly switch to DMA mode d3bed198333a soc: mediatek: Check if power domains can be powered on at boot time fcb0be5ba2e9 soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains() 38cded30497a arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node 14be28959f69 arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node c2712546a6e0 drm/tve200: Fix handling of platform_get_irq() error f61e9dbb56ba drm/mcde: Fix handling of platform_get_irq() error 29f34feb3860 drm/aspeed: Fix Kconfig warning & subsequent build errors 37028b8bc53d drm/gma500: fix double free of gma_connector de630248e740 md: fix a warning caused by a race between concurrent md_ioctl()s 054be9aed847 crypto: af_alg - avoid undefined behavior accessing salg_name 5a225303a68f media: msi2500: assign SPI bus number dynamically 01182045346a quota: Sanity-check quota file headers on load df95ea1228cc Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt() cda2f222e7e4 serial_core: Check for port state when tty is in error state 863cab3017bc HID: i2c-hid: add Vero K147 to descriptor override fd819f54065c scsi: megaraid_sas: Check user-provided offsets 152631f0273f coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf() 4c461e8d0e88 coresight: tmc-etr: Fix barrier packet insertion for perf buffer e81884d45a70 coresight: tmc-etr: Check if page is valid before dma_map_page() ec13738c6ec6 coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf() d923c0ec1292 ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU 43598dbdcbf0 ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410 2c6f6cd2cdfb ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU 4202cbbd2c4d usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul 8e19cfae3bb0 USB: gadget: f_rndis: fix bitrate for SuperSpeed and above 8c124b35a53b usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus 3389281e0e6e USB: gadget: f_midi: setup SuperSpeed Plus descriptors 0ddb1d96a5db USB: gadget: f_acm: add support for SuperSpeed Plus 9ad41aa399db USB: serial: option: add interface-number sanity check to flag handling 57e22590c41b usb: mtu3: fix memory corruption in mtu3_debugfs_regset() 80cb94507054 soc/tegra: fuse: Fix index bug in get_process_id 037c65990d76 kbuild: avoid split lines in .mod files a803ea15b0dc perf/x86/intel: Check PEBS status correctly 12db619c91d7 drm/amd/display: Init clock value by current vbios CLKs c137a880ae6c iwlwifi: pcie: add one missing entry for AX210 e124c5afaf88 dm table: Remove BUG_ON(in_interrupt()) 8a89abb26e30 scsi: mpt3sas: Increase IOCInit request timeout to 30s cd14a53938e0 vxlan: Copy needed_tailroom from lowerdev 0b9ce087f75b vxlan: Add needed_headroom for lower device 230290dca255 arm64: syscall: exit userspace before unmasking exceptions 34c07547dbe5 habanalabs: put devices before driver removal be063ce1004c drm/tegra: sor: Disable clocks on error in tegra_sor_init() 9b6ebb202bbb kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling d8baf15b2196 drm/tegra: replace idr_init() by idr_init_base() 76812738841c net: mvpp2: add mvpp2_phylink_to_port() helper 6aa270eb2f90 selftests: fix poll error in udpgro.sh 0e2b048ffe44 ixgbe: avoid premature Rx buffer reuse 75bbe7bd9003 i40e: avoid premature Rx buffer reuse b05fdd74ffb7 i40e: optimise prefetch page refcount 405bfd36f072 i40e: Refactor rx_bi accesses 6935f5385f75 RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait 2107658d6d62 selftests/bpf/test_offload.py: Reset ethtool features after failed setting 3b79aea56dff netfilter: nft_ct: Remove confirmation check for NFT_CT_ID 0a652b181d75 gpio: eic-sprd: break loop when getting NULL device resource 2ebb2df149d4 Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()" 64795af3bdc7 afs: Fix memory leak when mounting with multiple source parameters 6581512f0afc netfilter: nft_dynset: fix timeouts later than 23 days 810bc556e347 netfilter: nft_compat: make sure xtables destructors have run b17244cebb24 netfilter: x_tables: Switch synchronization to RCU 22faec182eec pinctrl: aspeed: Fix GPIO requests on pass-through banks f7e6636831df blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick 4f3e3fa6239d block: factor out requeue handling from dispatch code 9e54ca3d4f9d block: Simplify REQ_OP_ZONE_RESET_ALL handling 71e0f9c5c3df clk: renesas: r9a06g032: Drop __packed for portability 43a373488e92 can: softing: softing_netdev_open(): fix error handling 36f460d51ac5 xsk: Replace datagram_poll by sock_poll_wait 50ae52e07d2b xsk: Fix xsk_poll()'s return type 369ed255958f scsi: bnx2i: Requires MMU e190d1b3c4d2 gpio: mvebu: fix potential user-after-free on probe ec64dea576d5 gpio: zynq: fix reference leak in zynq_gpio functions 823f42bd6193 PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter 74e38f86ab53 ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin f7fbde0f0b14 ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp 4b008707bac4 ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY 76c475d5d788 ARM: dts: sun8i: v3s: fix GIC node memory range 9ebc986a2ea5 pinctrl: baytrail: Avoid clearing debounce value when turning it off e2556e022897 pinctrl: merrifield: Set default bias in case no particular value given 2ec85a7a5adf ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node 9f69f6f85288 ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator 389033996cec ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b29d1016f2761aefa15e38a86263fb03c46ec1d7) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- .../linux/linux-yocto-rt_5.4.bb | 6 ++--- .../linux/linux-yocto-tiny_5.4.bb | 8 +++---- meta/recipes-kernel/linux/linux-yocto_5.4.bb | 22 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index d505949eb8..f6dd97c9b4 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "baf3ccf7c7cfaf9515d8c8b3b639d7bbb0564594" -SRCREV_meta ?= "1c358e19696827b594de26a221f110fc2647dfa8" +SRCREV_machine ?= "b82b3d52ee94caf6165eda89d3294a561bfb4f0b" +SRCREV_meta ?= "bc855ca4626f33c38c1398d48c71df10334a9132" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.85" +LINUX_VERSION ?= "5.4.87" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index fea9ae26c1..05edcfa63d 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.85" +LINUX_VERSION ?= "5.4.87" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "f7f4bcebdd599197cde6f1d1985cb1ef1f3e8a54" -SRCREV_machine ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_meta ?= "1c358e19696827b594de26a221f110fc2647dfa8" +SRCREV_machine_qemuarm ?= "18b82a8554b25c86cbf31af312765832edca3498" +SRCREV_machine ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_meta ?= "bc855ca4626f33c38c1398d48c71df10334a9132" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/meta/recipes-kernel/linux/linux-yocto_5.4.bb index a3feeae966..ba8660d5d3 100644 --- a/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "888fe3a6f7776f5732c3c4cf4c862447e646c25e" -SRCREV_machine_qemuarm64 ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_machine_qemumips ?= "459ad51fb16465be3d291217a10bcb9d055f5775" -SRCREV_machine_qemuppc ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_machine_qemuriscv64 ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_machine_qemux86 ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_machine_qemux86-64 ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_machine_qemumips64 ?= "7eff01977ef77715ebc3e5a126534c39fe4ac918" -SRCREV_machine ?= "4f2b484a791fac88262922aa26ddd5ac3df9720f" -SRCREV_meta ?= "1c358e19696827b594de26a221f110fc2647dfa8" +SRCREV_machine_qemuarm ?= "03f94e8a96d027da980f2cc2ad6e95bbb45e22c5" +SRCREV_machine_qemuarm64 ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_machine_qemumips ?= "0b055d3e2e8d41743b00cd84975ff383e35f1ae9" +SRCREV_machine_qemuppc ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_machine_qemuriscv64 ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_machine_qemux86 ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_machine_qemux86-64 ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_machine_qemumips64 ?= "126e385b2dd8580a266fe15907c3725d2da12458" +SRCREV_machine ?= "292d752af8e4015e40e7c523641983bac543e2b4" +SRCREV_meta ?= "bc855ca4626f33c38c1398d48c71df10334a9132" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.85" +LINUX_VERSION ?= "5.4.87" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 13/14] binutils: upgrade 2.35 -> 2.35.1 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (11 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 12/14] linux-yocto/5.4: update to v5.4.87 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 14/14] systemd: upgrade 246.6 -> 246.9 Anuj Mittal 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core From: Wang Mingyu <wangmy@cn.fujitsu.com> Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit cff69ee95a6ab49e6c6c1b1b2435e479e526c2c9) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- .../binutils/{binutils-2.35.inc => binutils-2.35.1.inc} | 6 +++--- ...s-canadian_2.35.bb => binutils-cross-canadian_2.35.1.bb} | 0 ...testsuite_2.35.bb => binutils-cross-testsuite_2.35.1.bb} | 0 .../{binutils-cross_2.35.bb => binutils-cross_2.35.1.bb} | 0 ...inutils-crosssdk_2.35.bb => binutils-crosssdk_2.35.1.bb} | 0 .../binutils/{binutils_2.35.bb => binutils_2.35.1.bb} | 0 6 files changed, 3 insertions(+), 3 deletions(-) rename meta/recipes-devtools/binutils/{binutils-2.35.inc => binutils-2.35.1.inc} (96%) rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.35.bb => binutils-cross-canadian_2.35.1.bb} (100%) rename meta/recipes-devtools/binutils/{binutils-cross-testsuite_2.35.bb => binutils-cross-testsuite_2.35.1.bb} (100%) rename meta/recipes-devtools/binutils/{binutils-cross_2.35.bb => binutils-cross_2.35.1.bb} (100%) rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.35.bb => binutils-crosssdk_2.35.1.bb} (100%) rename meta/recipes-devtools/binutils/{binutils_2.35.bb => binutils_2.35.1.bb} (100%) diff --git a/meta/recipes-devtools/binutils/binutils-2.35.inc b/meta/recipes-devtools/binutils/binutils-2.35.1.inc similarity index 96% rename from meta/recipes-devtools/binutils/binutils-2.35.inc rename to meta/recipes-devtools/binutils/binutils-2.35.1.inc index aa02063b19..c92cb75543 100644 --- a/meta/recipes-devtools/binutils/binutils-2.35.inc +++ b/meta/recipes-devtools/binutils/binutils-2.35.1.inc @@ -16,15 +16,15 @@ def binutils_branch_version(d): # When upgrading to 2.35, please make sure there is no trailing .0, so # that upstream version check can work correctly. -PV = "2.35" -CVE_VERSION = "2.35" +PV = "2.35.1" +CVE_VERSION = "2.35.1" BINUPV = "${@binutils_branch_version(d)}" #BRANCH = "binutils-${BINUPV}-branch" BRANCH ?= "binutils-2_35-branch" UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)" -SRCREV ?= "89a9065674a14a8bd94bb326b27d19a2f3583efb" +SRCREV ?= "7e46a74aa3713c563940960e361e08defda019c2" BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git" SRC_URI = "\ ${BINUTILS_GIT_URI} \ diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.1.bb similarity index 100% rename from meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb rename to meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.1.bb diff --git a/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb b/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.1.bb similarity index 100% rename from meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb rename to meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.1.bb diff --git a/meta/recipes-devtools/binutils/binutils-cross_2.35.bb b/meta/recipes-devtools/binutils/binutils-cross_2.35.1.bb similarity index 100% rename from meta/recipes-devtools/binutils/binutils-cross_2.35.bb rename to meta/recipes-devtools/binutils/binutils-cross_2.35.1.bb diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.1.bb similarity index 100% rename from meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb rename to meta/recipes-devtools/binutils/binutils-crosssdk_2.35.1.bb diff --git a/meta/recipes-devtools/binutils/binutils_2.35.bb b/meta/recipes-devtools/binutils/binutils_2.35.1.bb similarity index 100% rename from meta/recipes-devtools/binutils/binutils_2.35.bb rename to meta/recipes-devtools/binutils/binutils_2.35.1.bb -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gatesgarth][PATCH 14/14] systemd: upgrade 246.6 -> 246.9 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal ` (12 preceding siblings ...) 2021-01-14 16:09 ` [gatesgarth][PATCH 13/14] binutils: upgrade 2.35 -> 2.35.1 Anuj Mittal @ 2021-01-14 16:09 ` Anuj Mittal 13 siblings, 0 replies; 15+ messages in thread From: Anuj Mittal @ 2021-01-14 16:09 UTC (permalink / raw) To: openembedded-core Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> --- ...md-boot_246.2.bb => systemd-boot_246.9.bb} | 0 ...md-conf_246.1.bb => systemd-conf_246.9.bb} | 0 meta/recipes-core/systemd/systemd.inc | 2 +- ...tall-dependency-links-at-install-tim.patch | 36 ++++++------ ...002-don-t-use-glibc-specific-qsort_r.patch | 55 +++++++++---------- .../{systemd_246.6.bb => systemd_246.9.bb} | 0 6 files changed, 47 insertions(+), 46 deletions(-) rename meta/recipes-core/systemd/{systemd-boot_246.2.bb => systemd-boot_246.9.bb} (100%) rename meta/recipes-core/systemd/{systemd-conf_246.1.bb => systemd-conf_246.9.bb} (100%) rename meta/recipes-core/systemd/{systemd_246.6.bb => systemd_246.9.bb} (100%) diff --git a/meta/recipes-core/systemd/systemd-boot_246.2.bb b/meta/recipes-core/systemd/systemd-boot_246.9.bb similarity index 100% rename from meta/recipes-core/systemd/systemd-boot_246.2.bb rename to meta/recipes-core/systemd/systemd-boot_246.9.bb diff --git a/meta/recipes-core/systemd/systemd-conf_246.1.bb b/meta/recipes-core/systemd/systemd-conf_246.9.bb similarity index 100% rename from meta/recipes-core/systemd/systemd-conf_246.1.bb rename to meta/recipes-core/systemd/systemd-conf_246.9.bb diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc index 1733565fc0..b0f8a72bbe 100644 --- a/meta/recipes-core/systemd/systemd.inc +++ b/meta/recipes-core/systemd/systemd.inc @@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" -SRCREV = "2ee1c57c4ff4fd3349cf03c2e89fbd18ca0b3a4a" +SRCREV = "90f7f6c5777e9e2a4990f299474f730459054bf4" SRCBRANCH = "v246-stable" SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}" diff --git a/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch index 2676c144f2..643b9547b7 100644 --- a/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch +++ b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch @@ -1,4 +1,4 @@ -From 564830719be2017c4953589d50f21a9e856a4ecc Mon Sep 17 00:00:00 2001 +From ad5b89a366785d8a19ba970f5b0c97b4de848fa3 Mon Sep 17 00:00:00 2001 From: Chen Qi <Qi.Chen@windriver.com> Date: Thu, 21 Feb 2019 16:23:24 +0800 Subject: [PATCH] binfmt: Don't install dependency links at install time for @@ -18,17 +18,16 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Chen Qi <Qi.Chen@windriver.com> [rebased for systemd 243] Signed-off-by: Scott Murray <scott.murray@konsulko.com> - --- units/meson.build | 6 ++---- units/proc-sys-fs-binfmt_misc.automount | 3 +++ units/systemd-binfmt.service.in | 4 ++++ 3 files changed, 9 insertions(+), 4 deletions(-) -Index: systemd-stable/units/meson.build -=================================================================== ---- systemd-stable.orig/units/meson.build -+++ systemd-stable/units/meson.build +diff --git a/units/meson.build b/units/meson.build +index 031237c..0d43bdb 100644 +--- a/units/meson.build ++++ b/units/meson.build @@ -54,8 +54,7 @@ units = [ ['poweroff.target', '', (with_runlevels ? 'runlevel0.target' : '')], @@ -38,8 +37,8 @@ Index: systemd-stable/units/meson.build + ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'], ['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'], ['reboot.target', '', - (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')], -@@ -162,8 +161,7 @@ in_units = [ + 'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')], +@@ -164,8 +163,7 @@ in_units = [ ['rc-local.service', 'HAVE_SYSV_COMPAT'], ['rescue.service', ''], ['systemd-backlight@.service', 'ENABLE_BACKLIGHT'], @@ -49,10 +48,10 @@ Index: systemd-stable/units/meson.build ['systemd-bless-boot.service', 'ENABLE_EFI HAVE_BLKID'], ['systemd-boot-check-no-failures.service', ''], ['systemd-coredump@.service', 'ENABLE_COREDUMP'], -Index: systemd-stable/units/proc-sys-fs-binfmt_misc.automount -=================================================================== ---- systemd-stable.orig/units/proc-sys-fs-binfmt_misc.automount -+++ systemd-stable/units/proc-sys-fs-binfmt_misc.automount +diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount +index 30a6bc9..4231f3b 100644 +--- a/units/proc-sys-fs-binfmt_misc.automount ++++ b/units/proc-sys-fs-binfmt_misc.automount @@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/ [Automount] @@ -60,11 +59,11 @@ Index: systemd-stable/units/proc-sys-fs-binfmt_misc.automount + +[Install] +WantedBy=sysinit.target -Index: systemd-stable/units/systemd-binfmt.service.in -=================================================================== ---- systemd-stable.orig/units/systemd-binfmt.service.in -+++ systemd-stable/units/systemd-binfmt.service.in -@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc +diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in +index e54e95e..372a598 100644 +--- a/units/systemd-binfmt.service.in ++++ b/units/systemd-binfmt.service.in +@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems DefaultDependencies=no Conflicts=shutdown.target @@ -79,3 +78,6 @@ Index: systemd-stable/units/systemd-binfmt.service.in + +[Install] +WantedBy=sysinit.target +-- +2.7.4 + diff --git a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch index 30fe9a14df..3be5095f07 100644 --- a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch +++ b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch @@ -1,4 +1,4 @@ -From 3eb12a6ba0bce149717eaabeb1505d379b3d705a Mon Sep 17 00:00:00 2001 +From 263e4100a849f28f62fcfcc1456e9e6de8ee836b Mon Sep 17 00:00:00 2001 From: Chen Qi <Qi.Chen@windriver.com> Date: Mon, 25 Feb 2019 13:41:41 +0800 Subject: [PATCH] don't use glibc-specific qsort_r @@ -12,16 +12,16 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Andrej Valek <andrej.valek@siemens.com> --- - src/basic/sort-util.h | 14 ------------ - src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++----- - src/shared/format-table.c | 36 ++++++++++++++++++++---------- + src/basic/sort-util.h | 14 -------------- + src/libsystemd/sd-hwdb/hwdb-util.c | 19 ++++++++++++++----- + src/shared/format-table.c | 36 ++++++++++++++++++++++++------------ 3 files changed, 38 insertions(+), 31 deletions(-) -Index: systemd-stable/src/basic/sort-util.h -=================================================================== ---- systemd-stable.orig/src/basic/sort-util.h -+++ systemd-stable/src/basic/sort-util.h -@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *bas +diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h +index a8dc3bb..9541061 100644 +--- a/src/basic/sort-util.h ++++ b/src/basic/sort-util.h +@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ }) @@ -39,11 +39,11 @@ Index: systemd-stable/src/basic/sort-util.h - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ - qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) -Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c -=================================================================== ---- systemd-stable.orig/src/libsystemd/sd-hwdb/hwdb-util.c -+++ systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c -@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) +diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c +index 5c75216..3986fc8 100644 +--- a/src/libsystemd/sd-hwdb/hwdb-util.c ++++ b/src/libsystemd/sd-hwdb/hwdb-util.c +@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) { DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); @@ -60,7 +60,7 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c } static int trie_node_add_value(struct trie *trie, struct trie_node *node, -@@ -158,7 +162,10 @@ static int trie_node_add_value(struct tr +@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, .value_off = v, }; @@ -72,7 +72,7 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c if (val) { /* At this point we have 2 identical properties on the same match-string. * Since we process files in order, we just replace the previous value. */ -@@ -184,7 +191,9 @@ static int trie_node_add_value(struct tr +@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, .line_number = line_number, }; node->values_count++; @@ -83,11 +83,11 @@ Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c return 0; } -Index: systemd-stable/src/shared/format-table.c -=================================================================== ---- systemd-stable.orig/src/shared/format-table.c -+++ systemd-stable/src/shared/format-table.c -@@ -1246,31 +1246,33 @@ static int cell_data_compare(TableData * +diff --git a/src/shared/format-table.c b/src/shared/format-table.c +index 612402c..04638b2 100644 +--- a/src/shared/format-table.c ++++ b/src/shared/format-table.c +@@ -1243,30 +1243,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t return CMP(index_a, index_b); } @@ -95,7 +95,6 @@ Index: systemd-stable/src/shared/format-table.c +static Table *user_table; +static int table_data_compare(const void *x, const void *y) { + const size_t *a = x, *b=y; - size_t i; int r; - assert(t); @@ -115,8 +114,8 @@ Index: systemd-stable/src/shared/format-table.c return 1; /* Order other lines by the sorting map */ -- for (i = 0; i < t->n_sort_map; i++) { -+ for (i = 0; i < user_table->n_sort_map; i++) { +- for (size_t i = 0; i < t->n_sort_map; i++) { ++ for (size_t i = 0; i < user_table->n_sort_map; i++) { TableData *d, *dd; - d = t->data[*a + t->sort_map[i]]; @@ -131,8 +130,8 @@ Index: systemd-stable/src/shared/format-table.c } /* Order identical lines by the order there were originally added in */ -@@ -1798,7 +1800,12 @@ int table_print(Table *t, FILE *f) { - for (i = 0; i < n_rows; i++) +@@ -1844,7 +1846,12 @@ int table_print(Table *t, FILE *f) { + for (size_t i = 0; i < n_rows; i++) sorted[i] = i * t->n_columns; - typesafe_qsort_r(sorted, n_rows, table_data_compare, t); @@ -145,8 +144,8 @@ Index: systemd-stable/src/shared/format-table.c } if (t->display_map) -@@ -2375,7 +2382,12 @@ int table_to_json(Table *t, JsonVariant - for (i = 0; i < n_rows; i++) +@@ -2440,7 +2447,12 @@ int table_to_json(Table *t, JsonVariant **ret) { + for (size_t i = 0; i < n_rows; i++) sorted[i] = i * t->n_columns; - typesafe_qsort_r(sorted, n_rows, table_data_compare, t); diff --git a/meta/recipes-core/systemd/systemd_246.6.bb b/meta/recipes-core/systemd/systemd_246.9.bb similarity index 100% rename from meta/recipes-core/systemd/systemd_246.6.bb rename to meta/recipes-core/systemd/systemd_246.9.bb -- 2.29.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-01-14 16:10 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-01-14 16:09 [gatesgarth][PATCH 00/14] patch review request Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 01/14] license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 02/14] curl: Fix CVE-2020-8284, CVE-2020-8285, CVE-2020-8286 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 03/14] selftest: Add argument to keep build dir Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 04/14] bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 05/14] pseudo: Update to print PSEUDO_LOGFILE in abort message on path mismatches Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 06/14] pseudo: Drop patches merged into upstream branch Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 07/14] pseudo: Add lchmod wrapper Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 08/14] pseudo: Update for arm host and memleak fixes/cleanup Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 09/14] mobile-broadband-provider-info: upgrade 20190618 ->20201225 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 10/14] glibc: CVE-2019-25013 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 11/14] ffmpeg: Fix CVE-2020-35964, CVE-2020-35965 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 12/14] linux-yocto/5.4: update to v5.4.87 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 13/14] binutils: upgrade 2.35 -> 2.35.1 Anuj Mittal 2021-01-14 16:09 ` [gatesgarth][PATCH 14/14] systemd: upgrade 246.6 -> 246.9 Anuj Mittal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox