From 9950cb3d59fafb3355d5e2308fda93e219987403 Mon Sep 17 00:00:00 2001 From: Hao <58808837+ha0lyu@users.noreply.github.com> Date: Sun, 3 Aug 2025 13:46:01 +0800 Subject: [PATCH] fix: check ext_str size when ext = zve* `zve*` = "zve{32, 64}{x, f, d}", size of `zve*` must be 6. Signed-off-by: Hao <58808837+ha0lyu@users.noreply.github.com> --- disasm/isa_parser.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/disasm/isa_parser.cc b/disasm/isa_parser.cc index 24eb5f28..7bffac01 100644 --- a/disasm/isa_parser.cc +++ b/disasm/isa_parser.cc @@ -368,6 +368,9 @@ isa_parser_t::isa_parser_t(const char* str, const char *priv) bad_isa_string(str, ("Invalid Zvl string: " + ext_str).c_str()); vlen = std::max(vlen, new_vlen); } else if (ext_str.substr(0, 3) == "zve") { + if (ext_str.size() != 6) { + bad_isa_string(str, ("Invalid Zve string: " + ext_str).c_str()); + } reg_t new_elen; try { new_elen = safe_stoul(ext_str.substr(3, ext_str.size() - 4));