@@ -881,6 +881,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
881
881
let this = self . eval_context_mut ( ) ;
882
882
883
883
this. check_no_isolation ( "readdir64_r" ) ?;
884
+ this. assert_platform ( "linux" , "readdir64_r" ) ;
884
885
885
886
let dirp = this. read_scalar ( dirp_op) ?. to_machine_usize ( this) ?;
886
887
@@ -907,7 +908,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
907
908
908
909
let file_name = dir_entry. file_name ( ) ;
909
910
let ( name_fits, _) = this. write_os_str_to_c_str (
910
- & file_name, name_place. ptr ,
911
+ & file_name,
912
+ name_place. ptr ,
911
913
name_place. layout . size . bytes ( ) ,
912
914
) ?;
913
915
if !name_fits {
@@ -966,10 +968,10 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
966
968
let this = self . eval_context_mut ( ) ;
967
969
968
970
this. check_no_isolation ( "readdir_r" ) ?;
971
+ this. assert_platform ( "macos" , "readdir_r" ) ;
969
972
970
973
let dirp = this. read_scalar ( dirp_op) ?. to_machine_usize ( this) ?;
971
974
972
-
973
975
let dir_iter = this. machine . dir_handler . streams . get_mut ( & dirp) . ok_or_else ( || {
974
976
err_unsup_format ! ( "The DIR pointer passed to readdir_r did not come from opendir" )
975
977
} ) ?;
@@ -994,7 +996,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
994
996
995
997
let file_name = dir_entry. file_name ( ) ;
996
998
let ( name_fits, file_name_len) = this. write_os_str_to_c_str (
997
- & file_name, name_place. ptr ,
999
+ & file_name,
1000
+ name_place. ptr ,
998
1001
name_place. layout . size . bytes ( ) ,
999
1002
) ?;
1000
1003
if !name_fits {
0 commit comments