From f1d1788012d9a59e1b7cb40cf35d13d9e116ce97 Mon Sep 17 00:00:00 2001 From: Andra Paraschiv Date: Fri, 9 Oct 2026 10:45:55 +0000 Subject: [PATCH] map: Add corresponding function for parsing memlock as u64 Currently, the memlock field of MapFdInfo is parsed as an u32 value. Given that the field is marked as an u64 value, add a function for parsing an u64 value. This can be helpful to parse memlock values higher than u32::MAX and not returning an error in this case. Signed-off-by: Andra Paraschiv --- libbpf-rs/src/map.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libbpf-rs/src/map.rs b/libbpf-rs/src/map.rs index ea8b938a..eb565371 100644 --- a/libbpf-rs/src/map.rs +++ b/libbpf-rs/src/map.rs @@ -1929,6 +1929,11 @@ impl MapFdInfo { .map_err(|e| Error::with_invalid_data(format!("`{key}`: {e}"))) }; + let parse_u64 = |key: &str, val: &str| -> Result { + val.parse() + .map_err(|e| Error::with_invalid_data(format!("`{key}`: {e}"))) + }; + let mut map_type = None; let mut key_size = None; let mut value_size = None; @@ -1962,7 +1967,7 @@ impl MapFdInfo { "map_extra" => { map_extra = Some(parse_hex(value).with_context(|| format!("bad `{key}`"))?) } - "memlock" => memlock = Some(parse(key, value)? as u64), + "memlock" => memlock = Some(parse_u64(key, value)?), "map_id" => map_id = Some(parse(key, value)?), "frozen" => frozen = Some(parse(key, value)? != 0), "owner_prog_type" => owner_prog_type = Some(parse(key, value)?),