This is an automated email from the ASF dual-hosted git repository.

janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit cf1625d3b0d80043298a4add7974ef3d483e6e65
Author: Szymon Czapracki <[email protected]>
AuthorDate: Thu Oct 9 16:10:54 2025 +0200

    kernel/os_mbuf: Handle buffer copy across mbuf pools
    
    Funciton os_mbuf_dup() can overflow on mixed-pool mbuf chains.
    It assumes all mbufs match the first pool’s size and memcpy()s
    larger segments past the destination.
    Make duplication pool-aware.
---
 kernel/os/src/os_mbuf.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/os/src/os_mbuf.c b/kernel/os/src/os_mbuf.c
index d5ed8353d..2c193c4f3 100644
--- a/kernel/os/src/os_mbuf.c
+++ b/kernel/os/src/os_mbuf.c
@@ -377,6 +377,9 @@ os_mbuf_dup(struct os_mbuf *om)
     copy = NULL;
 
     for (; om != NULL; om = SLIST_NEXT(om, om_next)) {
+
+        omp = om->om_omp;
+
         if (head) {
             SLIST_NEXT(copy, om_next) = os_mbuf_get(omp,
                     OS_MBUF_LEADINGSPACE(om));

Reply via email to