Skip to content

Commit ca8c99d

Browse files
Omit needless error strings
1 parent d810317 commit ca8c99d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/symbolize/gimli/parse_running_mmaps_unix.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,34 +86,36 @@ impl FromStr for MapsEntry {
8686
// e.g.: "7f5985f46000-7f5985f48000 rw-p 00039000 103:06 76021795 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2"
8787
// e.g.: "35b1a21000-35b1a22000 rw-p 00000000 00:00 0"
8888
fn from_str(s: &str) -> Result<Self, Self::Err> {
89+
let missing_field = "failed to find all map fields";
90+
let parse_err = "failed to parse all map fields";
8991
let mut parts = s
9092
.split(' ') // space-separated fields
9193
.filter(|s| s.len() > 0); // multiple spaces implies empty strings that need to be skipped.
92-
let range_str = parts.next().ok_or("Couldn't find address")?;
93-
let perms_str = parts.next().ok_or("Couldn't find permissions")?;
94-
let offset_str = parts.next().ok_or("Couldn't find offset")?;
95-
let dev_str = parts.next().ok_or("Couldn't find dev")?;
96-
let inode_str = parts.next().ok_or("Couldn't find inode")?;
94+
let range_str = parts.next().ok_or(missing_field)?;
95+
let perms_str = parts.next().ok_or(missing_field)?;
96+
let offset_str = parts.next().ok_or(missing_field)?;
97+
let dev_str = parts.next().ok_or(missing_field)?;
98+
let inode_str = parts.next().ok_or(missing_field)?;
9799
let pathname_str = parts.next().unwrap_or(""); // pathname may be omitted.
98100

99-
let hex = |s| usize::from_str_radix(s, 16).map_err(|_| "Couldn't parse hex number");
101+
let hex = |s| usize::from_str_radix(s, 16).map_err(|_| parse_err);
100102
let address = if let Some((start, limit)) = range_str.split_once('-') {
101103
(hex(start)?, hex(limit)?)
102104
} else {
103-
return Err("Couldn't parse address range");
105+
return Err(parse_err);
104106
};
105107
let _perms = if let &[r, w, x, p, ..] = perms_str.as_bytes() {
106108
// If a system in the future adds a 5th field to the permission list,
107109
// there's no reason to assume previous fields were invalidated.
108110
[r, w, x, p]
109111
} else {
110-
return Err("less than 4 perms");
112+
return Err(parse_err);
111113
};
112114
let _offset = hex(offset_str)?;
113115
let _dev = if let Some((major, minor)) = dev_str.split_once(':') {
114116
(hex(major)?, hex(minor)?)
115117
} else {
116-
return Err("Couldn't parse dev");
118+
return Err(parse_err);
117119
};
118120
let _inode = hex(inode_str)?;
119121
let pathname = pathname_str.into();

0 commit comments

Comments
 (0)