@@ -187,7 +187,8 @@ int ksu_handle_devpts(struct inode *inode)
187
187
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5 , 1 , 0 )
188
188
struct inode_security_struct * sec = selinux_inode (inode );
189
189
#else
190
- struct inode_security_struct * sec = (struct inode_security_struct * ) inode -> i_security ;
190
+ struct inode_security_struct * sec =
191
+ (struct inode_security_struct * )inode -> i_security ;
191
192
#endif
192
193
if (sec ) {
193
194
sec -> sid = ksu_devpts_sid ;
@@ -319,22 +320,23 @@ static struct kprobe execve_kp = {
319
320
};
320
321
#endif
321
322
322
- static int devpts_get_priv_pre (struct kprobe * p , struct pt_regs * regs )
323
+ static int pts_unix98_lookup_pre (struct kprobe * p , struct pt_regs * regs )
323
324
{
324
325
struct inode * inode ;
325
326
#if LINUX_VERSION_CODE >= KERNEL_VERSION (4 , 6 , 0 )
326
- struct dentry * dentry = (struct dentry * )PT_REGS_PARM1 (regs );
327
- inode = dentry -> d_inode ;
327
+ struct file * file = (struct file * )PT_REGS_PARM2 (regs );
328
+ inode = file -> f_path . dentry -> d_inode ;
328
329
#else
329
- inode = (struct inode * )PT_REGS_PARM1 (regs );
330
+ inode = (struct inode * )PT_REGS_PARM2 (regs );
330
331
#endif
331
332
332
333
return ksu_handle_devpts (inode );
333
334
}
334
335
335
- static struct kprobe devpts_get_priv_kp = { .symbol_name = "devpts_get_priv" ,
336
- .pre_handler =
337
- devpts_get_priv_pre };
336
+ static struct kprobe pts_unix98_lookup_kp = { .symbol_name =
337
+ "pts_unix98_lookup" ,
338
+ .pre_handler =
339
+ pts_unix98_lookup_pre };
338
340
339
341
#endif
340
342
@@ -349,7 +351,7 @@ void ksu_sucompat_init()
349
351
pr_info ("sucompat: newfstatat_kp: %d\n" , ret );
350
352
ret = register_kprobe (& faccessat_kp );
351
353
pr_info ("sucompat: faccessat_kp: %d\n" , ret );
352
- ret = register_kprobe (& devpts_get_priv_kp );
354
+ ret = register_kprobe (& pts_unix98_lookup_kp );
353
355
pr_info ("sucompat: devpts_kp: %d\n" , ret );
354
356
#endif
355
357
}
@@ -360,6 +362,6 @@ void ksu_sucompat_exit()
360
362
unregister_kprobe (& execve_kp );
361
363
unregister_kprobe (& newfstatat_kp );
362
364
unregister_kprobe (& faccessat_kp );
363
- unregister_kprobe (& devpts_get_priv_kp );
365
+ unregister_kprobe (& pts_unix98_lookup_kp );
364
366
#endif
365
367
}
0 commit comments