From 989092c04649ff07bbb552b2ccc7c9f44569b75c Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 24 Jul 2025 10:31:18 +0100 Subject: fix: tooling: fix 'fsck.hefs', 'mkfs.hefs', and 'mk_img.py' tools. Signed-off-by: Amlal El Mahrouss --- tooling/libmkfs/mkfs.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'tooling/libmkfs') diff --git a/tooling/libmkfs/mkfs.h b/tooling/libmkfs/mkfs.h index 1765e1d4..31f7a26a 100644 --- a/tooling/libmkfs/mkfs.h +++ b/tooling/libmkfs/mkfs.h @@ -34,10 +34,17 @@ namespace detail { } inline bool parse_signed(const std::string& opt, long& out, int base = 10) { - if (opt.empty()) return false; + out = 0L; + + if (opt.empty()) return true; + char* endptr = nullptr; long val = std::strtol(opt.c_str(), &endptr, base); - if (endptr == opt.c_str() || *endptr != '\0' || val < 0) return false; + auto err = errno; + + if (err == ERANGE || err == EINVAL) return false; + if (endptr == opt.c_str() || *endptr != '\0') return false; + out = val; return true; } -- cgit v1.2.3