@@ -2,7 +2,7 @@ use std::env;
2
2
use std:: path:: Path ;
3
3
4
4
use landlock:: {
5
- path_beneath_rules, Access , AccessFs , Compatible , RulesetAttr , RulesetCreated ,
5
+ path_beneath_rules, Access , AccessFs , CompatLevel , Compatible , RulesetAttr , RulesetCreated ,
6
6
RulesetCreatedAttr , ABI ,
7
7
} ;
8
8
@@ -12,11 +12,14 @@ use crate::rustc_info::get_cargo_home;
12
12
///
13
13
/// This allows access to various essential system locations.
14
14
pub ( super ) fn base_ruleset ( ) -> RulesetCreated {
15
- let abi = ABI :: V2 ;
15
+ let abi = ABI :: V4 ;
16
16
let access_all = AccessFs :: from_all ( abi) ;
17
17
let access_read = AccessFs :: from_read ( abi) ;
18
18
landlock:: Ruleset :: default ( )
19
- . set_compatibility ( landlock:: CompatLevel :: BestEffort )
19
+ . set_compatibility ( CompatLevel :: SoftRequirement )
20
+ . handle_access ( AccessFs :: Refer )
21
+ . unwrap ( )
22
+ . set_compatibility ( CompatLevel :: BestEffort )
20
23
. handle_access ( access_all)
21
24
. unwrap ( )
22
25
. create ( )
@@ -28,7 +31,7 @@ pub(super) fn base_ruleset() -> RulesetCreated {
28
31
}
29
32
30
33
pub ( super ) fn lock_fetch ( ) {
31
- let abi = ABI :: V2 ;
34
+ let abi = ABI :: V4 ;
32
35
let access_all = AccessFs :: from_all ( abi) ;
33
36
base_ruleset ( )
34
37
. add_rules ( path_beneath_rules ( [ env:: current_dir ( ) . unwrap ( ) . join ( "download" ) ] , access_all) )
@@ -38,7 +41,7 @@ pub(super) fn lock_fetch() {
38
41
}
39
42
40
43
pub ( super ) fn lock_build ( cargo : & Path ) {
41
- let abi = ABI :: V2 ;
44
+ let abi = ABI :: V4 ;
42
45
let access_all = AccessFs :: from_all ( abi) ;
43
46
base_ruleset ( )
44
47
. add_rules ( path_beneath_rules (
0 commit comments