All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v2 1/3] eal: add missing parameter check to rte_eal_alarm_set on Windows
Date: Fri,  9 Aug 2024 08:24:27 -0700	[thread overview]
Message-ID: <20240809152540.9568-2-stephen@networkplumber.org> (raw)
In-Reply-To: <20240809152540.9568-1-stephen@networkplumber.org>

Both Linux and FreeBSD, check parameters to rte_eal_alarm_set,
but Windows missed this. And the test was "fixed" instead.

This reverts commit a089d320338d708f5b7126dab5fd6861c82e6347.

Windows EAL should have been fixed rather than papering over
the bug.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_alarm.c       | 4 ----
 lib/eal/windows/eal_alarm.c | 7 +++++++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/app/test/test_alarm.c b/app/test/test_alarm.c
index 70e97a3109..b4034339b8 100644
--- a/app/test/test_alarm.c
+++ b/app/test/test_alarm.c
@@ -10,7 +10,6 @@
 
 #include "test.h"
 
-#ifndef RTE_EXEC_ENV_WINDOWS
 static volatile int flag;
 
 static void
@@ -19,7 +18,6 @@ test_alarm_callback(void *cb_arg)
 	flag = 1;
 	printf("Callback setting flag - OK. [cb_arg = %p]\n", cb_arg);
 }
-#endif
 
 static int
 test_alarm(void)
@@ -29,7 +27,6 @@ test_alarm(void)
 	return 0;
 #endif
 
-#ifndef RTE_EXEC_ENV_WINDOWS
 	/* check if it will fail to set alarm with wrong us value */
 	printf("check if it will fail to set alarm with wrong ms values\n");
 	if (rte_eal_alarm_set(0, test_alarm_callback,
@@ -42,7 +39,6 @@ test_alarm(void)
 		printf("should not be successful with (UINT64_MAX-1) us value\n");
 		return -1;
 	}
-#endif
 
 	/* check if it will fail to set alarm with null callback parameter */
 	printf("check if it will fail to set alarm with null callback parameter\n");
diff --git a/lib/eal/windows/eal_alarm.c b/lib/eal/windows/eal_alarm.c
index 052af4b21b..09a02a1cbf 100644
--- a/lib/eal/windows/eal_alarm.c
+++ b/lib/eal/windows/eal_alarm.c
@@ -92,6 +92,13 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg)
 	LARGE_INTEGER deadline;
 	int ret;
 
+	/* Check parameters, including that us won't cause a uint64_t overflow */
+	if (us < 1 || us > (UINT64_MAX - US_PER_S)) {
+		EAL_LOG(ERR, "Invalid alarm interval");
+		ret = -EINVAL;
+		goto exit;
+	}
+
 	if (cb_fn == NULL) {
 		EAL_LOG(ERR, "NULL callback");
 		ret = -EINVAL;
-- 
2.43.0


  reply	other threads:[~2024-08-09 15:25 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-08 19:46 [PATCH 0/5] alarm related patches Stephen Hemminger
2024-08-08 19:46 ` [PATCH 1/5] eal: add missing parameter check to rte_eal_alarm_set on Windows Stephen Hemminger
2024-08-08 19:46 ` [PATCH 2/5] Revert "test/alarm: disable bad time cases on Windows" Stephen Hemminger
2024-08-09  7:23   ` Dmitry Kozlyuk
2024-08-09  7:33     ` Dmitry Kozlyuk
2024-08-09 14:59     ` Stephen Hemminger
2024-08-08 19:46 ` [PATCH 3/5] test: support alarm test on FreeBSD Stephen Hemminger
2024-08-08 19:47 ` [PATCH 4/5] test/alarm: rewrite the alarm test Stephen Hemminger
2024-08-08 19:47 ` [PATCH 5/5] eal: simplify eal alarm cancel by using LIST_FOREACH_SAFE Stephen Hemminger
2024-08-09  8:33   ` Morten Brørup
2024-08-09 15:00     ` Stephen Hemminger
2024-08-09 15:24 ` [PATCH v2 0/3] alarm test fixes Stephen Hemminger
2024-08-09 15:24   ` Stephen Hemminger [this message]
2024-08-09 15:24   ` [PATCH v2 2/3] test: support alarm test on FreeBSD Stephen Hemminger
2024-08-09 15:24   ` [PATCH v2 3/3] test/alarm: rewrite the alarm test Stephen Hemminger
2024-09-23  2:17   ` [PATCH v2 0/3] alarm test fixes fengchengwen
2024-10-04 11:58   ` David Marchand

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=20240809152540.9568-2-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.