diff --git a/src/52-fsession-latency/fsession_latency.c b/src/52-fsession-latency/fsession_latency.c index a4219f2..e5c6e7c 100644 --- a/src/52-fsession-latency/fsession_latency.c +++ b/src/52-fsession-latency/fsession_latency.c @@ -63,7 +63,7 @@ static int parse_u64(const char *value, unsigned long long maximum, errno = 0; parsed = strtoull(value, &end, 10); - if (errno || !end || *end || parsed > maximum) + if (errno || end == value || *end || parsed > maximum) return -EINVAL; *result = parsed; return 0; diff --git a/src/52-fsession-latency/tests/test_fsession_latency.py b/src/52-fsession-latency/tests/test_fsession_latency.py index f04933c..22e41e8 100644 --- a/src/52-fsession-latency/tests/test_fsession_latency.py +++ b/src/52-fsession-latency/tests/test_fsession_latency.py @@ -101,6 +101,16 @@ def main() -> int: assert invalid.returncode != 0 assert "invalid duration" in invalid.stdout + empty_threshold = subprocess.run( + [binary, "--threshold-us", ""], + text=True, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + check=False, + ) + assert empty_threshold.returncode != 0 + assert "invalid threshold" in empty_threshold.stdout + pid = str(os.getpid()) missed, _ = run_trace( binary,