Openembedded Core Discussions
 help / color / mirror / Atom feed
From: "Fabien Thomas" <fabien.thomas@smile.fr>
To: <fabien.thomas@smile.fr>, <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core][scarthgap 22/37] curl: fix CVE-2026-6429
Date: Thu, 20 Aug 2026 12:23:13 +0200	[thread overview]
Message-ID: <DKTP3XEC9P8X.3NH15CYC35F07@smile.fr> (raw)
In-Reply-To: <18CD40121B3B9CC0.2965692@lists.openembedded.org>

On Wed Aug 19, 2026 at 5:56 PM CEST, Fabien Thomas via lists.openembedded.org wrote:
> From: Deepak Rathore <deeratho@cisco.com>
>
> This patch applies the upstream backport for CVE-2026-6429.
> The upstream fix commit is referenced in [1], and the public
> CVE advisory is referenced in [2].
>
> [1] https://github.com/curl/curl/commit/b4024bf808bd558026fdc6096e8457f199ace306
> [2] https://curl.se/docs/CVE-2026-6429.html
> [3] https://nvd.nist.gov/vuln/detail/CVE-2026-6429
>
> (From OE-Core rev: 0cbfae83eebf9076f7b22d07b48cb5cef1536989)
>
> Signed-off-by: Deepak Rathore <deeratho@cisco.com>
> Signed-off-by: Fabien Thomas <fabien.thomas@smile.fr>
> ---
>  .../curl/curl/CVE-2026-6429.patch             | 367 ++++++++++++++++++
>  meta/recipes-support/curl/curl_8.7.1.bb       |   1 +
>  2 files changed, 368 insertions(+)
>  create mode 100644 meta/recipes-support/curl/curl/CVE-2026-6429.patch
>
> diff --git a/meta/recipes-support/curl/curl/CVE-2026-6429.patch b/meta/recipes-support/curl/curl/CVE-2026-6429.patch
> new file mode 100644
> index 00000000000..f4df441aa2b
> --- /dev/null
> +++ b/meta/recipes-support/curl/curl/CVE-2026-6429.patch
> @@ -0,0 +1,367 @@
> +From 8191fd6d5677c30579c09a8d0988b47bbf33f65f Mon Sep 17 00:00:00 2001
> +From: Daniel Stenberg <daniel@haxx.se>
> +Date: Fri, 5 Jun 2026 01:20:50 -0700
> +Subject: [PATCH] http: clear credentials better on redirect
> +
> +Verify with test 2506: netrc with redirect using proxy
> +
> +Updated test 998 which was wrong.
> +
> +Reported-by: Muhamad Arga Reksapati
> +
> +Closes #21345
> +
> +CVE: CVE-2026-6429
> +Upstream-Status: Backport [https://github.com/curl/curl/commit/b4024bf808bd558026fdc6096e8457f199ace306]
> +
> +Backport Changes:
> +- The upstream lib/http.c hunk adds the same-origin credential clearing to
> +  Curl_http_follow(). curl-8.7.1 predates that protocol-specific redirect
> +  handler and carries the equivalent redirect logic in lib/transfer.c via
> +  Curl_follow(), so the full upstream lib/http.c hunk was adapted there.
> +- curl-8.7.1 uses tests/data/Makefile.inc and tests/libtest/Makefile.inc
> +  instead of the upstream tests/data/Makefile.am and
> +  tests/libtest/Makefile.am lists.
> +- curl-8.7.1 does not contain test2504/lib2504, so the new
> +  test2506/lib2506 entries were registered after the nearest existing
> +  test2503/lib2502 entries in the target-version test lists.
> +- curl-8.7.1 uses the older libtest harness, so first.h,
> +  test_lib2506(), and CURLcode result handling were adapted to test.h,
> +  test(), and int res.
> +- Scarthgap curl-8.7.1 keeps the same incorrect redirected-request
> +  Authorization expectation in tests/data/test998, so this backport removes
> +  that expectation with an equivalent target-version hunk.
> +
> +(cherry picked from commit b4024bf808bd558026fdc6096e8457f199ace306)
> +Signed-off-by: Deepak Rathore <deeratho@cisco.com>
> +---
> + lib/transfer.c             | 103 +++++++++++++++++++++----------------
> + tests/data/Makefile.inc    |   2 +-
> + tests/data/test2506        |  64 +++++++++++++++++++++++
> + tests/data/test998         |   1 -
> + tests/libtest/Makefile.inc |   5 +-
> + tests/libtest/lib2506.c    |  71 +++++++++++++++++++++++++
> + 6 files changed, 198 insertions(+), 48 deletions(-)
> + create mode 100644 tests/data/test2506
> + create mode 100644 tests/libtest/lib2506.c
> +
> +diff --git a/lib/transfer.c b/lib/transfer.c
> +index a73462928d..0f5bd8ce59 100644
> +--- a/lib/transfer.c
> ++++ b/lib/transfer.c
> +@@ -865,49 +865,62 @@ CURLcode Curl_follow(struct Curl_easy *data,
> +     if(uc)
> +       return Curl_uc_to_curlcode(uc);
> +
> +-    /* Clear auth if this redirects to a different port number or protocol,
> +-       unless permitted */
> +-    if(!data->set.allow_auth_to_other_hosts && (type != FOLLOW_FAKE)) {
> +-      char *portnum;
> +-      int port;
> +-      bool clear = FALSE;
> +-
> +-      if(data->set.use_port && data->state.allow_port)
> +-        /* a custom port is used */
> +-        port = (int)data->set.use_port;
> +-      else {
> +-        uc = curl_url_get(data->state.uh, CURLUPART_PORT, &portnum,
> +-                          CURLU_DEFAULT_PORT);
> +-        if(uc) {
> +-          free(newurl);
> +-          return Curl_uc_to_curlcode(uc);
> +-        }
> +-        port = atoi(portnum);
> +-        free(portnum);
> +-      }
> +-      if(port != data->info.conn_remote_port) {
> +-        infof(data, "Clear auth, redirects to port from %u to %u",
> +-              data->info.conn_remote_port, port);
> +-        clear = TRUE;
> ++    {
> ++      bool same_origin;
> ++      CURLU *u;
> ++      char *oldscheme = NULL;
> ++      char *oldhost = NULL;
> ++      char *oldport = NULL;
> ++      char *newscheme = NULL;
> ++      char *newhost = NULL;
> ++      char *newport = NULL;
> ++
> ++      u = curl_url();
> ++      if(!u) {
> ++        free(newurl);
> ++        return CURLE_OUT_OF_MEMORY;
> +       }
> +-      else {
> +-        char *scheme;
> +-        const struct Curl_handler *p;
> +-        uc = curl_url_get(data->state.uh, CURLUPART_SCHEME, &scheme, 0);
> +-        if(uc) {
> +-          free(newurl);
> +-          return Curl_uc_to_curlcode(uc);
> +-        }
> +
> +-        p = Curl_get_scheme_handler(scheme);
> +-        if(p && (p->protocol != data->info.conn_protocol)) {
> +-          infof(data, "Clear auth, redirects scheme from %s to %s",
> +-                data->info.conn_scheme, scheme);
> +-          clear = TRUE;
> +-        }
> +-        free(scheme);
> ++      uc = curl_url_set(u, CURLUPART_URL, data->state.url, 0);
> ++      if(!uc)
> ++        uc = curl_url_get(u, CURLUPART_SCHEME, &oldscheme, 0);
> ++      if(!uc)
> ++        uc = curl_url_get(u, CURLUPART_HOST, &oldhost, 0);
> ++      if(!uc)
> ++        uc = curl_url_get(u, CURLUPART_PORT, &oldport, CURLU_DEFAULT_PORT);
> ++      if(!uc)
> ++        uc = curl_url_get(data->state.uh, CURLUPART_SCHEME, &newscheme, 0);
> ++      if(!uc)
> ++        uc = curl_url_get(data->state.uh, CURLUPART_HOST, &newhost, 0);
> ++      if(!uc)
> ++        uc = curl_url_get(data->state.uh, CURLUPART_PORT, &newport,
> ++                          CURLU_DEFAULT_PORT);
> ++      if(uc) {
> ++        curl_url_cleanup(u);
> ++        free(oldscheme);
> ++        free(oldhost);
> ++        free(oldport);
> ++        free(newscheme);
> ++        free(newhost);
> ++        free(newport);
> ++        free(newurl);
> ++        return Curl_uc_to_curlcode(uc);
> +       }
> +-      if(clear) {
> ++
> ++      same_origin = strcasecompare(oldscheme, newscheme) &&
> ++                    strcasecompare(oldhost, newhost) &&
> ++                    !strcmp(oldport, newport);
> ++
> ++      curl_url_cleanup(u);
> ++      free(oldscheme);
> ++      free(oldhost);
> ++      free(oldport);
> ++      free(newscheme);
> ++      free(newhost);
> ++      free(newport);
> ++
> ++      if((!same_origin && !data->set.allow_auth_to_other_hosts) ||
> ++         !data->set.str[STRING_USERNAME]) {
> +         result = Curl_reset_userpwd(data);
> +         if(result) {
> +           free(newurl);
> +@@ -917,12 +930,12 @@ CURLcode Curl_follow(struct Curl_easy *data,
> +         Curl_safefree(data->state.aptr.passwd);
> +       }
> +     }
> +-  }
> +
> +-  result = Curl_reset_proxypwd(data);
> +-  if(result) {
> +-    free(newurl);
> +-    return result;
> ++    result = Curl_reset_proxypwd(data);
> ++    if(result) {
> ++      free(newurl);
> ++      return result;
> ++    }
> +   }
> +
> +   if(type == FOLLOW_FAKE) {
> +diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
> +index aafd309a9d..f673f86384 100644
> +--- a/tests/data/Makefile.inc
> ++++ b/tests/data/Makefile.inc
> +@@ -251,7 +251,7 @@ test2300 test2301 test2302 test2303 test2304 test2305 test2306 test2307 \
> + \
> + test2400 test2401 test2402 test2403 test2404 \
> + \
> +-test2500 test2501 test2502 test2503 \
> ++test2500 test2501 test2502 test2503 test2506 \
> + \
> + test2600 test2601 test2602 test2603 \
> + \
> +diff --git a/tests/data/test2506 b/tests/data/test2506
> +new file mode 100644
> +index 0000000000..9c65002496
> +--- /dev/null
> ++++ b/tests/data/test2506
> +@@ -0,0 +1,64 @@
> ++<?xml version="1.0" encoding="US-ASCII"?>
> ++<testcase>
> ++<info>
> ++<keywords>
> ++HTTP
> ++cookies
> ++</keywords>
> ++</info>
> ++
> ++<reply>
> ++<data crlf="headers" nocheck="yes">
> ++HTTP/1.1 301 redirect
> ++Date: Tue, 09 Nov 2010 14:49:00 GMT
> ++Content-Length: 3
> ++Location: http://numbertwo.example/%TESTNUMBER0002
> ++
> ++ok
> ++</data>
> ++<data2 crlf="headers" nocheck="yes">
> ++HTTP/1.1 200 OK
> ++Date: Tue, 09 Nov 2010 14:49:00 GMT
> ++Content-Length: 4
> ++
> ++yes
> ++</data2>
> ++</reply>
> ++
> ++<client>
> ++<server>
> ++http
> ++</server>
> ++<features>
> ++proxy
> ++</features>
> ++<tool>
> ++lib%TESTNUMBER
> ++</tool>
> ++<name>
> ++netrc with redirect using proxy
> ++</name>
> ++<file name="%LOGDIR/netrc2506">
> ++machine site.example login batman password robin
> ++</file>
> ++<command>
> ++http://%HOSTIP:%HTTPPORT http://site.example/ %LOGDIR/netrc2506
> ++</command>
> ++</client>
> ++
> ++<verify>
> ++<protocol crlf="headers">
> ++GET http://site.example/ HTTP/1.1
> ++Host: site.example
> ++Authorization: Basic %b64[batman:robin]b64%
> ++Accept: */*
> ++Proxy-Connection: Keep-Alive
> ++
> ++GET http://numbertwo.example/25060002 HTTP/1.1
> ++Host: numbertwo.example
> ++Accept: */*
> ++Proxy-Connection: Keep-Alive
> ++
> ++</protocol>
> ++</verify>
> ++</testcase>
> +diff --git a/tests/data/test998 b/tests/data/test998
> +index 0969d4704b..17c0a0e150 100644
> +--- a/tests/data/test998
> ++++ b/tests/data/test998
> +@@ -82,7 +82,6 @@ Proxy-Connection: Keep-Alive
> + 
> +  GET http://somewhere.else.example/a/path/9980002 HTTP/1.1
> +  Host: somewhere.else.example
> +- Authorization: Basic YWxiZXJ0bzplaW5zdGVpbg==
> +  User-Agent: curl/%VERSION
> +  Accept: */*
> +  Proxy-Connection: Keep-Alive
> +diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
> +index 9f7cec6027..9d3356aaf5 100644
> +--- a/tests/libtest/Makefile.inc
> ++++ b/tests/libtest/Makefile.inc
> +@@ -75,7 +75,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect libprereq      \
> +  lib1970 lib1971 lib1972 lib1973 lib1974 lib1975 \
> +  lib2301 lib2302 lib2304 lib2305 lib2306 \
> +  lib2402 lib2404 \
> +- lib2502 \
> ++ lib2502 lib2506 \
> +  lib3010 lib3025 lib3026 lib3027 \
> +  lib3100 lib3101 lib3102 lib3103
> +
> +@@ -684,6 +684,9 @@ lib2404_LDADD = $(TESTUTIL_LIBS)
> + lib2502_SOURCES = lib2502.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
> + lib2502_LDADD = $(TESTUTIL_LIBS)
> +
> ++lib2506_SOURCES = lib2506.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
> ++lib2506_LDADD = $(TESTUTIL_LIBS)
> ++
> + lib3010_SOURCES = lib3010.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
> + lib3010_LDADD = $(TESTUTIL_LIBS)
> +
> +diff --git a/tests/libtest/lib2506.c b/tests/libtest/lib2506.c
> +new file mode 100644
> +index 0000000000..e6dde18507
> +--- /dev/null
> ++++ b/tests/libtest/lib2506.c
> +@@ -0,0 +1,71 @@
> ++/***************************************************************************
> ++ *                                  _   _ ____  _
> ++ *  Project                     ___| | | |  _ \| |
> ++ *                             / __| | | | |_) | |
> ++ *                            | (__| |_| |  _ <| |___
> ++ *                             \___|\___/|_| \_\_____|
> ++ *
> ++ * Copyright (C) Linus Nielsen Feltzing <linus@haxx.se>
> ++ *
> ++ * This software is licensed as described in the file COPYING, which
> ++ * you should have received as part of this distribution. The terms
> ++ * are also available at https://curl.se/docs/copyright.html.
> ++ *
> ++ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
> ++ * copies of the Software, and permit persons to whom the Software is
> ++ * furnished to do so, under the terms of the COPYING file.
> ++ *
> ++ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
> ++ * KIND, either express or implied.
> ++ *
> ++ * SPDX-License-Identifier: curl
> ++ *
> ++ ***************************************************************************/
> ++#include "test.h"
> ++
> ++#include "testtrace.h"
> ++
> ++static size_t sink2506(char *ptr, size_t size, size_t nmemb, void *ud)
> ++{
> ++  (void)ptr;
> ++  (void)ud;
> ++  return size * nmemb;
> ++}
> ++
> ++int test(char *URL)
> ++{
> ++  CURL *curl;
> ++  int res = CURLE_OUT_OF_MEMORY;
> ++
> ++  if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
> ++    curl_mfprintf(stderr, "curl_global_init() failed\n");
> ++    return TEST_ERR_MAJOR_BAD;
> ++  }
> ++
> ++  curl = curl_easy_init();
> ++  if(!curl) {
> ++    curl_mfprintf(stderr, "curl_easy_init() failed\n");
> ++    curl_global_cleanup();
> ++    return TEST_ERR_MAJOR_BAD;
> ++  }
> ++
> ++  test_setopt(curl, CURLOPT_WRITEFUNCTION, sink2506);
> ++  test_setopt(curl, CURLOPT_PROXY, URL);
> ++  test_setopt(curl, CURLOPT_URL, libtest_arg2);
> ++  test_setopt(curl, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
> ++  test_setopt(curl, CURLOPT_NETRC_FILE, libtest_arg3);
> ++  test_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
> ++  test_setopt(curl, CURLOPT_VERBOSE, 1L);
> ++
> ++  /* CURLOPT_UNRESTRICTED_AUTH should not make a difference because the
> ++     credentials come from netrc */
> ++  test_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, 1L);
> ++
> ++  res = curl_easy_perform(curl);
> ++
> ++test_cleanup:
> ++  curl_easy_cleanup(curl);
> ++  curl_global_cleanup();
> ++
> ++  return res;
> ++}
> diff --git a/meta/recipes-support/curl/curl_8.7.1.bb b/meta/recipes-support/curl/curl_8.7.1.bb
> index 2b988654c41..8e39d821626 100644
> --- a/meta/recipes-support/curl/curl_8.7.1.bb
> +++ b/meta/recipes-support/curl/curl_8.7.1.bb
> @@ -40,6 +40,7 @@ SRC_URI = " \
>      file://CVE-2026-6276.patch \
>      file://CVE-2026-5545.patch \
>      file://CVE-2026-6253.patch \
> +    file://CVE-2026-6429.patch \
>  "
>  
>  SRC_URI:append:class-nativesdk = " \

I'll have to drop this patch because it is triggering a warning in the
autobuilder's ptest jobs qemuarm64-ptest[1] and qemux86-64-ptest[2].

It causes curl ptests 1159 & 1543 to fail :
	`FAIL: 1159 - HTTP Location: and 'redirect_url' with non-supported scheme`
	`FAIL: 1543 - CURLOPT_CURLU, URL with space and CURLINFO_EFFECTIVE_URL`

I'll drop the next patch of the series too (curl: fix CVE-2026-7168),
because it not applied anymore without this one.

[1] https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/4320
[2] https://autobuilder.yoctoproject.org/valkyrie/#/builders/73/builds/4336

-- 
Fabien Thomas
Smile ECS



  parent reply	other threads:[~2026-08-20 10:23 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-19 15:56 [OE-core][scarthgap 00/37] Patch review Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 01/37] python3-pyopenssl: set CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 02/37] python3-idna: " Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 03/37] python3-certifi: " Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 04/37] python3-xmltodict: " Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 05/37] python3-pyyaml: " Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 06/37] gnutls: fix CVE-2026-3833 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 07/37] expat: fix CVE-2026-56403 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 08/37] expat: fix CVE-2026-56408 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 09/37] expat: fix CVE-2026-56404 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 10/37] expat: fix CVE-2026-56405 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 11/37] expat: fix CVE-2026-56410 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 12/37] expat: fix CVE-2026-56406 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 13/37] expat: fix CVE-2026-56409 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 14/37] expat: fix CVE-2026-56411 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 15/37] expat: fix CVE-2026-56407 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 16/37] expat: fix CVE-2026-56132 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 17/37] python3: fix CVE-2026-7210 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 18/37] python3-pip: set CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 19/37] libssh2: Fix CVE-2025-15661 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 20/37] curl: fix CVE-2026-5545 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 21/37] curl: fix CVE-2026-6253 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 22/37] curl: fix CVE-2026-6429 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 23/37] curl: fix CVE-2026-7168 Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 24/37] u-boot: Set CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 25/37] xserver-org: update CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 26/37] shadow: set CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 27/37] flex: update CVE_PRODUCT Fabien Thomas
2026-08-19 15:56 ` [OE-core][scarthgap 28/37] sudo: set CVE_PRODUCT Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 29/37] perf: drop newt from tui build requirements Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 30/37] busybox: patch CVE-2026-38754 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 31/37] curl: fix CVE-2026-4873 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 32/37] libssh2: fix CVE-2026-66032 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 33/37] libssh2: fix CVE-2026-66033 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 34/37] libssh2: fix CVE-2026-66034 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 35/37] libssh2: fix CVE-2026-66035 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 36/37] libsndfile1: patch CVE-2026-37555 Fabien Thomas
2026-08-19 15:57 ` [OE-core][scarthgap 37/37] linux-yocto/6.6: update to v6.6.147 Fabien Thomas
     [not found] ` <18CD40121B3B9CC0.2965692@lists.openembedded.org>
2026-08-20 10:23   ` Fabien Thomas [this message]
     [not found] ` <18CD4012388268D1.189677@lists.openembedded.org>
2026-08-20 10:23   ` [OE-core][scarthgap 23/37] curl: fix CVE-2026-7168 Fabien Thomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DKTP3XEC9P8X.3NH15CYC35F07@smile.fr \
    --to=fabien.thomas@smile.fr \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox