From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 14238489EF for ; Mon, 27 Oct 2025 17:20:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0EBC040611; Mon, 27 Oct 2025 17:20:12 +0100 (CET) Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mails.dpdk.org (Postfix) with ESMTP id 989AF4028B for ; Mon, 27 Oct 2025 17:20:11 +0100 (CET) Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-47117f92e32so43321985e9.1 for ; Mon, 27 Oct 2025 09:20:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582011; x=1762186811; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6AdShYnzoSY4yFuJXT0ACyIlxxo+mTN8Z1D8ItBo7D0=; b=I+LiZ6JbslAH6LUnpZrkZYcui333VCSpGcPyYpjCkwmvuu0QSOscYkGfkYtidh+Qa3 Z/1ONw3LWU8lgA7lXPj6lAQWUbSZ1gLVOZLfwmbIMKcCVGj874Ov4iTN5wGxb5u1fi2B WvK0dJTcEeWRRHUOiIVbZ94u4pXo5az8K/kqz8lL8ZY3s2X4hLV7TvIDPFpFdVOo9vIq kajZsSJC8X3SCeF6IRyWKHOPpbD75guyNkQkySQ8kChpiOrPm8hnIq4IRPL1x6x2S8Az thyjkn6iLq4g1EOftEgcfcXuFifV3SuMDinw0sQy8PqAk1RZ791JW1lvsTGw3odw0sIT Djlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582011; x=1762186811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6AdShYnzoSY4yFuJXT0ACyIlxxo+mTN8Z1D8ItBo7D0=; b=cN/FFGbElD1UDbgTBvEOwCeKtvzXGWWDwvEUqditq+fCzpqBunhE/5LVM9eg6yBqri 8/QLS7ueZSJgRiG2iiF2V66I8jext7lR9dtam6BvI/rPaoJU7t3mDRHG4KqTCJYBUml4 x3M92wZ28XvIY3QQWSyQL/0LxWr3/XJm9wOVa3tt8C0X+8QN4mBZsZv9Z71wRDVP7FCm b/7oIryguU35ruox55qn9H6K/G0iNVQomen/y0/fLo+awZJpo1PBwhsYhZwfiFjEnx0v EOTTvpZVScWoqGJxRUb5KR4cwzDuUeWp5GeV6Mm0Tq5eDy6jrGrEngeMBxHHNnCYloIp pvmg== X-Forwarded-Encrypted: i=1; AJvYcCXH+DBf4Yuc548WrXKo/EH5cnWX8o7Ip7bPNxbrox+HRvjyzIsfhWI63pRjslL/vOLWd8szRN0=@dpdk.org X-Gm-Message-State: AOJu0YzDcDcS0XFLCM0v9flUsVLqaf2aAe7tUyGkh0L6FIPwo76sQF5i BZnOLaDFfr7eL24VeKQt25wbBZRKFw/KeqwSGauit+oLLRiBsqqXBmmM X-Gm-Gg: ASbGncvsxEprewPVvBu8T8JV7OU2Hawj3FPTqKFHDXPMVQXsxoEXLXjedt4mmFS0fLF d4t54YbxWbvUh5C16jIwRBavzIkpoYdsiN5OqaZujeD7ZhP/LOkcSuTp82hL+NawRd5CUb8RfCL JYOj6sSZqTIzDjobkDRBZQNENyOF3IgsGW+VmhUcwwmZzktsuRx4RmYSUZm6svt0HC4hjuMXw/o eoU7JyoxQwy2HU1ULrX+lSXKsgLUgo/NCoJvZpjC/LMNKYLtKBChs17N5slQ2ClratbTdzDtH88 nYdwcYXFn+FCDtyv4VVCVibzMXBjZIYXhLsp7bGCSoPhDCbA3OnWnHk3uv6+OHmm3Ak+tmclM8F kfSQlUXkBQumGLUvvF5zCJRBgr6EKyPSpQ4ghzzqOxlrA7siDHTOJ6Me7P60F8EfAsAtepBwMWP y+sxEoVw== X-Google-Smtp-Source: AGHT+IEw/rbvb1ewYI9WoVYQyCValywkHccgK/iJ2SP0poW82KH7RJdcf7c44PB721534E3SCj5X2g== X-Received: by 2002:a05:600c:3489:b0:471:d2d:ac42 with SMTP id 5b1f17b1804b1-47717dfaa91mr2251805e9.14.1761582011013; Mon, 27 Oct 2025 09:20:11 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-475dd4783b8sm145562585e9.15.2025.10.27.09.20.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:20:10 -0700 (PDT) From: luca.boccassi@gmail.com To: David Marchand Cc: Bruce Richardson , Chengwen Feng , dpdk stable Subject: patch 'eal: fix plugin dir walk' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:18:40 +0000 Message-ID: <20251027162001.3710450-2-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 22.11.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/25. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/61274adade73841b501017af50721b96c4c1e19b Thanks. Luca Boccassi --- >From 61274adade73841b501017af50721b96c4c1e19b Mon Sep 17 00:00:00 2001 From: David Marchand Date: Fri, 20 Dec 2024 09:34:31 +0100 Subject: [PATCH] eal: fix plugin dir walk [ upstream commit c32e203ee23473ccf3c8526d12e1c59f17c50eab ] For '.' and '..' directories (or any short file name), a out of bound issue occurs. Caught by UBSan: EAL: Detected shared linkage of DPDK ../lib/eal/common/eal_common_options.c:420:15: runtime error: index -2 out of bounds for type 'char[256]' #0 0x7f867eedf206 in eal_plugindir_init eal_common_options.c #1 0x7f867eede58a in eal_plugins_init (build/lib/librte_eal.so.25+0xde58a) (BuildId: e7e4a1935e4bacb51c82ab1a84098a27decf3b4c) #2 0x7f867efb8587 in rte_eal_init (build/lib/librte_eal.so.25+0x1b8587) (BuildId: e7e4a1935e4bacb51c82ab1a84098a27decf3b4c) #3 0x55b62360861e in main (/home/runner/work/dpdk/dpdk/build/app/dpdk-testpmd+0x9e061e) (BuildId: d821ec918612c83fad8b5ccb6cc518e66bee48cd) #4 0x7f8667429d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 #5 0x7f8667429e3f in __libc_start_main csu/../csu/libc-start.c:392:3 #6 0x55b622d9d444 in _start (/home/runner/work/dpdk/dpdk/build/app/dpdk-testpmd+0x175444) (BuildId: d821ec918612c83fad8b5ccb6cc518e66bee48cd) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../lib/eal/common/eal_common_options.c:420:15 in ../lib/eal/common/eal_common_options.c:421:15: runtime error: index 18446744073709551609 out of bounds for type 'char[256]' Fixes: c57f6e5c604a ("eal: fix plugin loading") Signed-off-by: David Marchand Acked-by: Bruce Richardson Acked-by: Chengwen Feng --- lib/eal/common/eal_common_options.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c index 8570f8f03e..b9ee8e05bf 100644 --- a/lib/eal/common/eal_common_options.c +++ b/lib/eal/common/eal_common_options.c @@ -397,12 +397,21 @@ eal_plugins_init(void) } #else +static bool +ends_with(const char *str, const char *tail) +{ + size_t tail_len = strlen(tail); + size_t str_len = strlen(str); + + return str_len >= tail_len && strcmp(&str[str_len - tail_len], tail) == 0; +} + static int eal_plugindir_init(const char *path) { - DIR *d = NULL; struct dirent *dent = NULL; char sopath[PATH_MAX]; + DIR *d = NULL; if (path == NULL || *path == '\0') return 0; @@ -416,12 +425,8 @@ eal_plugindir_init(const char *path) while ((dent = readdir(d)) != NULL) { struct stat sb; - int nlen = strnlen(dent->d_name, sizeof(dent->d_name)); - /* check if name ends in .so or .so.ABI_VERSION */ - if (strcmp(&dent->d_name[nlen - 3], ".so") != 0 && - strcmp(&dent->d_name[nlen - 4 - strlen(ABI_VERSION)], - ".so."ABI_VERSION) != 0) + if (!ends_with(dent->d_name, ".so") && !ends_with(dent->d_name, ".so."ABI_VERSION)) continue; snprintf(sopath, sizeof(sopath), "%s/%s", path, dent->d_name); -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:34.944218833 +0000 +++ 0002-eal-fix-plugin-dir-walk.patch 2025-10-27 15:54:34.719947643 +0000 @@ -1 +1 @@ -From c32e203ee23473ccf3c8526d12e1c59f17c50eab Mon Sep 17 00:00:00 2001 +From 61274adade73841b501017af50721b96c4c1e19b Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit c32e203ee23473ccf3c8526d12e1c59f17c50eab ] + @@ -39 +40,0 @@ -Cc: stable@dpdk.org @@ -49 +50 @@ -index 3169dd069f..2f91b96190 100644 +index 8570f8f03e..b9ee8e05bf 100644 @@ -52 +53 @@ -@@ -399,12 +399,21 @@ eal_plugins_init(void) +@@ -397,12 +397,21 @@ eal_plugins_init(void) @@ -75 +76 @@ -@@ -418,12 +427,8 @@ eal_plugindir_init(const char *path) +@@ -416,12 +425,8 @@ eal_plugindir_init(const char *path)