diff --git a/floss/language/rust/extract.py b/floss/language/rust/extract.py index 29010626f..37f6f7b96 100644 --- a/floss/language/rust/extract.py +++ b/floss/language/rust/extract.py @@ -14,8 +14,8 @@ find_lea_xrefs, find_mov_xrefs, find_push_xrefs, - get_raw_xrefs_rdata_i386, get_rdata_section, + get_raw_xrefs_rdata_i386, get_struct_string_candidates, ) diff --git a/tests/test_language_extract_rust.py b/tests/test_language_extract_rust.py index 9d210ce0c..a7c300236 100644 --- a/tests/test_language_extract_rust.py +++ b/tests/test_language_extract_rust.py @@ -80,3 +80,21 @@ def test_push(request, string, offset, encoding, rust_strings): ) def test_mov_jmp(request, string, offset, encoding, rust_strings): assert StaticString(string=string, offset=offset, encoding=encoding) in request.getfixturevalue(rust_strings) + + +@pytest.mark.parametrize( + "string,offset,encoding,rust_strings", + [ + # .rdata:004BFA48 dd offset unk_4BA13A + # .rdata:004BFA4C dd offset unk_4BA100 + pytest.param("Invalid branch target in DWARF expression", 0xB813A, StringEncoding.UTF8, "rust_strings32"), + pytest.param( + "Expected to find an FDE pointer, but found a CIE pointer instead.", + 0xB8163, + StringEncoding.UTF8, + "rust_strings32", + ), + ], +) +def test_raw_xrefs(request, string, offset, encoding, rust_strings): + assert StaticString(string=string, offset=offset, encoding=encoding) in request.getfixturevalue(rust_strings)