@@ -830,17 +830,22 @@ impl KernelDumpParser {
830830
831831 /// Read an exact amount of virtual memory starting at `gva`. Returns `None`
832832 /// if a memory error occurs (page not present, page not in dump, etc.).
833- pub fn virt_read_exact ( & self , gva : Gva , buf : & mut [ u8 ] ) -> Result < bool > {
833+ pub fn virt_read_exact ( & self , gva : Gva , buf : & mut [ u8 ] ) -> Result < Option < ( ) > > {
834834 self . virt_read_exact_with_dtb ( gva, buf, Gpa :: new ( self . headers . directory_table_base ) )
835835 }
836836
837837 /// Read an exact amount of virtual memory starting at `gva` using a
838838 /// specific directory table base / set of page tables. Returns `None` if a
839839 /// memory error occurs (page not present, page not in dump, etc.).
840- pub fn virt_read_exact_with_dtb ( & self , gva : Gva , buf : & mut [ u8 ] , dtb : Gpa ) -> Result < bool > {
840+ pub fn virt_read_exact_with_dtb (
841+ & self ,
842+ gva : Gva ,
843+ buf : & mut [ u8 ] ,
844+ dtb : Gpa ,
845+ ) -> Result < Option < ( ) > > {
841846 match self . virt_read_exact_strict_with_dtb ( gva, buf, dtb) {
842- Ok ( ( ) ) => Ok ( true ) ,
843- Err ( KdmpParserError :: MemoryRead ( _) ) => Ok ( false ) ,
847+ Ok ( ( ) ) => Ok ( Some ( ( ) ) ) ,
848+ Err ( KdmpParserError :: MemoryRead ( _) ) => Ok ( None ) ,
844849 Err ( e) => Err ( e) ,
845850 }
846851 }
@@ -969,9 +974,11 @@ impl KernelDumpParser {
969974 }
970975
971976 let mut buffer = vec ! [ 0 ; unicode_str. length. into( ) ] ;
972- if !self . virt_read_exact_with_dtb ( Gva :: new ( unicode_str. buffer . into ( ) ) , & mut buffer, dtb) ? {
977+ let Some ( ( ) ) =
978+ self . virt_read_exact_with_dtb ( Gva :: new ( unicode_str. buffer . into ( ) ) , & mut buffer, dtb) ?
979+ else {
973980 return Ok ( None ) ;
974- }
981+ } ;
975982
976983 let n = unicode_str. length / 2 ;
977984
0 commit comments