@@ -100,7 +100,7 @@ struct audit_aux_data_pids {
100
100
kuid_t target_auid [AUDIT_AUX_PIDS ];
101
101
kuid_t target_uid [AUDIT_AUX_PIDS ];
102
102
unsigned int target_sessionid [AUDIT_AUX_PIDS ];
103
- u32 target_sid [AUDIT_AUX_PIDS ];
103
+ struct lsm_prop target_ref [AUDIT_AUX_PIDS ];
104
104
char target_comm [AUDIT_AUX_PIDS ][TASK_COMM_LEN ];
105
105
int pid_count ;
106
106
};
@@ -1019,7 +1019,7 @@ static void audit_reset_context(struct audit_context *ctx)
1019
1019
ctx -> target_pid = 0 ;
1020
1020
ctx -> target_auid = ctx -> target_uid = KUIDT_INIT (0 );
1021
1021
ctx -> target_sessionid = 0 ;
1022
- ctx -> target_sid = 0 ;
1022
+ lsmprop_init ( & ctx -> target_ref ) ;
1023
1023
ctx -> target_comm [0 ] = '\0' ;
1024
1024
unroll_tree_refs (ctx , NULL , 0 );
1025
1025
WARN_ON (!list_empty (& ctx -> killed_trees ));
@@ -1093,8 +1093,9 @@ static inline void audit_free_context(struct audit_context *context)
1093
1093
}
1094
1094
1095
1095
static int audit_log_pid_context (struct audit_context * context , pid_t pid ,
1096
- kuid_t auid , kuid_t uid , unsigned int sessionid ,
1097
- u32 sid , char * comm )
1096
+ kuid_t auid , kuid_t uid ,
1097
+ unsigned int sessionid , struct lsm_prop * prop ,
1098
+ char * comm )
1098
1099
{
1099
1100
struct audit_buffer * ab ;
1100
1101
char * ctx = NULL ;
@@ -1108,8 +1109,8 @@ static int audit_log_pid_context(struct audit_context *context, pid_t pid,
1108
1109
audit_log_format (ab , "opid=%d oauid=%d ouid=%d oses=%d" , pid ,
1109
1110
from_kuid (& init_user_ns , auid ),
1110
1111
from_kuid (& init_user_ns , uid ), sessionid );
1111
- if (sid ) {
1112
- if (security_secid_to_secctx ( sid , & ctx , & len )) {
1112
+ if (lsmprop_is_set ( prop ) ) {
1113
+ if (security_lsmprop_to_secctx ( prop , & ctx , & len )) {
1113
1114
audit_log_format (ab , " obj=(none)" );
1114
1115
rc = 1 ;
1115
1116
} else {
@@ -1778,7 +1779,7 @@ static void audit_log_exit(void)
1778
1779
axs -> target_auid [i ],
1779
1780
axs -> target_uid [i ],
1780
1781
axs -> target_sessionid [i ],
1781
- axs -> target_sid [i ],
1782
+ & axs -> target_ref [i ],
1782
1783
axs -> target_comm [i ]))
1783
1784
call_panic = 1 ;
1784
1785
}
@@ -1787,7 +1788,7 @@ static void audit_log_exit(void)
1787
1788
audit_log_pid_context (context , context -> target_pid ,
1788
1789
context -> target_auid , context -> target_uid ,
1789
1790
context -> target_sessionid ,
1790
- context -> target_sid , context -> target_comm ))
1791
+ & context -> target_ref , context -> target_comm ))
1791
1792
call_panic = 1 ;
1792
1793
1793
1794
if (context -> pwd .dentry && context -> pwd .mnt ) {
@@ -2722,15 +2723,12 @@ int __audit_sockaddr(int len, void *a)
2722
2723
void __audit_ptrace (struct task_struct * t )
2723
2724
{
2724
2725
struct audit_context * context = audit_context ();
2725
- struct lsm_prop prop ;
2726
2726
2727
2727
context -> target_pid = task_tgid_nr (t );
2728
2728
context -> target_auid = audit_get_loginuid (t );
2729
2729
context -> target_uid = task_uid (t );
2730
2730
context -> target_sessionid = audit_get_sessionid (t );
2731
- security_task_getlsmprop_obj (t , & prop );
2732
- /* scaffolding */
2733
- context -> target_sid = prop .scaffold .secid ;
2731
+ security_task_getlsmprop_obj (t , & context -> target_ref );
2734
2732
memcpy (context -> target_comm , t -> comm , TASK_COMM_LEN );
2735
2733
}
2736
2734
@@ -2746,7 +2744,6 @@ int audit_signal_info_syscall(struct task_struct *t)
2746
2744
struct audit_aux_data_pids * axp ;
2747
2745
struct audit_context * ctx = audit_context ();
2748
2746
kuid_t t_uid = task_uid (t );
2749
- struct lsm_prop prop ;
2750
2747
2751
2748
if (!audit_signals || audit_dummy_context ())
2752
2749
return 0 ;
@@ -2758,9 +2755,7 @@ int audit_signal_info_syscall(struct task_struct *t)
2758
2755
ctx -> target_auid = audit_get_loginuid (t );
2759
2756
ctx -> target_uid = t_uid ;
2760
2757
ctx -> target_sessionid = audit_get_sessionid (t );
2761
- security_task_getlsmprop_obj (t , & prop );
2762
- /* scaffolding */
2763
- ctx -> target_sid = prop .scaffold .secid ;
2758
+ security_task_getlsmprop_obj (t , & ctx -> target_ref );
2764
2759
memcpy (ctx -> target_comm , t -> comm , TASK_COMM_LEN );
2765
2760
return 0 ;
2766
2761
}
@@ -2781,9 +2776,7 @@ int audit_signal_info_syscall(struct task_struct *t)
2781
2776
axp -> target_auid [axp -> pid_count ] = audit_get_loginuid (t );
2782
2777
axp -> target_uid [axp -> pid_count ] = t_uid ;
2783
2778
axp -> target_sessionid [axp -> pid_count ] = audit_get_sessionid (t );
2784
- security_task_getlsmprop_obj (t , & prop );
2785
- /* scaffolding */
2786
- axp -> target_sid [axp -> pid_count ] = prop .scaffold .secid ;
2779
+ security_task_getlsmprop_obj (t , & axp -> target_ref [axp -> pid_count ]);
2787
2780
memcpy (axp -> target_comm [axp -> pid_count ], t -> comm , TASK_COMM_LEN );
2788
2781
axp -> pid_count ++ ;
2789
2782
0 commit comments