@@ -100,7 +100,7 @@ struct audit_aux_data_pids {
100100 kuid_t target_auid [AUDIT_AUX_PIDS ];
101101 kuid_t target_uid [AUDIT_AUX_PIDS ];
102102 unsigned int target_sessionid [AUDIT_AUX_PIDS ];
103- u32 target_sid [AUDIT_AUX_PIDS ];
103+ struct lsm_prop target_ref [AUDIT_AUX_PIDS ];
104104 char target_comm [AUDIT_AUX_PIDS ][TASK_COMM_LEN ];
105105 int pid_count ;
106106};
@@ -1019,7 +1019,7 @@ static void audit_reset_context(struct audit_context *ctx)
10191019 ctx -> target_pid = 0 ;
10201020 ctx -> target_auid = ctx -> target_uid = KUIDT_INIT (0 );
10211021 ctx -> target_sessionid = 0 ;
1022- ctx -> target_sid = 0 ;
1022+ lsmprop_init ( & ctx -> target_ref ) ;
10231023 ctx -> target_comm [0 ] = '\0' ;
10241024 unroll_tree_refs (ctx , NULL , 0 );
10251025 WARN_ON (!list_empty (& ctx -> killed_trees ));
@@ -1093,8 +1093,9 @@ static inline void audit_free_context(struct audit_context *context)
10931093}
10941094
10951095static 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 )
10981099{
10991100 struct audit_buffer * ab ;
11001101 char * ctx = NULL ;
@@ -1108,8 +1109,8 @@ static int audit_log_pid_context(struct audit_context *context, pid_t pid,
11081109 audit_log_format (ab , "opid=%d oauid=%d ouid=%d oses=%d" , pid ,
11091110 from_kuid (& init_user_ns , auid ),
11101111 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 )) {
11131114 audit_log_format (ab , " obj=(none)" );
11141115 rc = 1 ;
11151116 } else {
@@ -1778,7 +1779,7 @@ static void audit_log_exit(void)
17781779 axs -> target_auid [i ],
17791780 axs -> target_uid [i ],
17801781 axs -> target_sessionid [i ],
1781- axs -> target_sid [i ],
1782+ & axs -> target_ref [i ],
17821783 axs -> target_comm [i ]))
17831784 call_panic = 1 ;
17841785 }
@@ -1787,7 +1788,7 @@ static void audit_log_exit(void)
17871788 audit_log_pid_context (context , context -> target_pid ,
17881789 context -> target_auid , context -> target_uid ,
17891790 context -> target_sessionid ,
1790- context -> target_sid , context -> target_comm ))
1791+ & context -> target_ref , context -> target_comm ))
17911792 call_panic = 1 ;
17921793
17931794 if (context -> pwd .dentry && context -> pwd .mnt ) {
@@ -2722,15 +2723,12 @@ int __audit_sockaddr(int len, void *a)
27222723void __audit_ptrace (struct task_struct * t )
27232724{
27242725 struct audit_context * context = audit_context ();
2725- struct lsm_prop prop ;
27262726
27272727 context -> target_pid = task_tgid_nr (t );
27282728 context -> target_auid = audit_get_loginuid (t );
27292729 context -> target_uid = task_uid (t );
27302730 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 );
27342732 memcpy (context -> target_comm , t -> comm , TASK_COMM_LEN );
27352733}
27362734
@@ -2746,7 +2744,6 @@ int audit_signal_info_syscall(struct task_struct *t)
27462744 struct audit_aux_data_pids * axp ;
27472745 struct audit_context * ctx = audit_context ();
27482746 kuid_t t_uid = task_uid (t );
2749- struct lsm_prop prop ;
27502747
27512748 if (!audit_signals || audit_dummy_context ())
27522749 return 0 ;
@@ -2758,9 +2755,7 @@ int audit_signal_info_syscall(struct task_struct *t)
27582755 ctx -> target_auid = audit_get_loginuid (t );
27592756 ctx -> target_uid = t_uid ;
27602757 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 );
27642759 memcpy (ctx -> target_comm , t -> comm , TASK_COMM_LEN );
27652760 return 0 ;
27662761 }
@@ -2781,9 +2776,7 @@ int audit_signal_info_syscall(struct task_struct *t)
27812776 axp -> target_auid [axp -> pid_count ] = audit_get_loginuid (t );
27822777 axp -> target_uid [axp -> pid_count ] = t_uid ;
27832778 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 ]);
27872780 memcpy (axp -> target_comm [axp -> pid_count ], t -> comm , TASK_COMM_LEN );
27882781 axp -> pid_count ++ ;
27892782
0 commit comments