~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/audit.h

Version: ~ [ linux-5.13-rc7 ] ~ [ linux-5.12.12 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.45 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.127 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.195 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.237 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.273 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.273 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 /* audit.h -- Auditing support
  3  *
  4  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
  5  * All Rights Reserved.
  6  *
  7  * Written by Rickard E. (Rik) Faith <faith@redhat.com>
  8  */
  9 #ifndef _LINUX_AUDIT_H_
 10 #define _LINUX_AUDIT_H_
 11 
 12 #include <linux/sched.h>
 13 #include <linux/ptrace.h>
 14 #include <linux/namei.h>  /* LOOKUP_* */
 15 #include <uapi/linux/audit.h>
 16 
 17 #define AUDIT_INO_UNSET ((unsigned long)-1)
 18 #define AUDIT_DEV_UNSET ((dev_t)-1)
 19 
 20 struct audit_sig_info {
 21         uid_t           uid;
 22         pid_t           pid;
 23         char            ctx[0];
 24 };
 25 
 26 struct audit_buffer;
 27 struct audit_context;
 28 struct inode;
 29 struct netlink_skb_parms;
 30 struct path;
 31 struct linux_binprm;
 32 struct mq_attr;
 33 struct mqstat;
 34 struct audit_watch;
 35 struct audit_tree;
 36 struct sk_buff;
 37 
 38 struct audit_krule {
 39         u32                     pflags;
 40         u32                     flags;
 41         u32                     listnr;
 42         u32                     action;
 43         u32                     mask[AUDIT_BITMASK_SIZE];
 44         u32                     buflen; /* for data alloc on list rules */
 45         u32                     field_count;
 46         char                    *filterkey; /* ties events to rules */
 47         struct audit_field      *fields;
 48         struct audit_field      *arch_f; /* quick access to arch field */
 49         struct audit_field      *inode_f; /* quick access to an inode field */
 50         struct audit_watch      *watch; /* associated watch */
 51         struct audit_tree       *tree;  /* associated watched tree */
 52         struct audit_fsnotify_mark      *exe;
 53         struct list_head        rlist;  /* entry in audit_{watch,tree}.rules list */
 54         struct list_head        list;   /* for AUDIT_LIST* purposes only */
 55         u64                     prio;
 56 };
 57 
 58 /* Flag to indicate legacy AUDIT_LOGINUID unset usage */
 59 #define AUDIT_LOGINUID_LEGACY           0x1
 60 
 61 struct audit_field {
 62         u32                             type;
 63         union {
 64                 u32                     val;
 65                 kuid_t                  uid;
 66                 kgid_t                  gid;
 67                 struct {
 68                         char            *lsm_str;
 69                         void            *lsm_rule;
 70                 };
 71         };
 72         u32                             op;
 73 };
 74 
 75 enum audit_ntp_type {
 76         AUDIT_NTP_OFFSET,
 77         AUDIT_NTP_FREQ,
 78         AUDIT_NTP_STATUS,
 79         AUDIT_NTP_TAI,
 80         AUDIT_NTP_TICK,
 81         AUDIT_NTP_ADJUST,
 82 
 83         AUDIT_NTP_NVALS /* count */
 84 };
 85 
 86 #ifdef CONFIG_AUDITSYSCALL
 87 struct audit_ntp_val {
 88         long long oldval, newval;
 89 };
 90 
 91 struct audit_ntp_data {
 92         struct audit_ntp_val vals[AUDIT_NTP_NVALS];
 93 };
 94 #else
 95 struct audit_ntp_data {};
 96 #endif
 97 
 98 extern int is_audit_feature_set(int which);
 99 
100 extern int __init audit_register_class(int class, unsigned *list);
101 extern int audit_classify_syscall(int abi, unsigned syscall);
102 extern int audit_classify_arch(int arch);
103 /* only for compat system calls */
104 extern unsigned compat_write_class[];
105 extern unsigned compat_read_class[];
106 extern unsigned compat_dir_class[];
107 extern unsigned compat_chattr_class[];
108 extern unsigned compat_signal_class[];
109 
110 extern int audit_classify_compat_syscall(int abi, unsigned syscall);
111 
112 /* audit_names->type values */
113 #define AUDIT_TYPE_UNKNOWN      0       /* we don't know yet */
114 #define AUDIT_TYPE_NORMAL       1       /* a "normal" audit record */
115 #define AUDIT_TYPE_PARENT       2       /* a parent audit record */
116 #define AUDIT_TYPE_CHILD_DELETE 3       /* a child being deleted */
117 #define AUDIT_TYPE_CHILD_CREATE 4       /* a child being created */
118 
119 /* maximized args number that audit_socketcall can process */
120 #define AUDITSC_ARGS            6
121 
122 /* bit values for ->signal->audit_tty */
123 #define AUDIT_TTY_ENABLE        BIT(0)
124 #define AUDIT_TTY_LOG_PASSWD    BIT(1)
125 
126 struct filename;
127 
128 #define AUDIT_OFF       0
129 #define AUDIT_ON        1
130 #define AUDIT_LOCKED    2
131 #ifdef CONFIG_AUDIT
132 /* These are defined in audit.c */
133                                 /* Public API */
134 extern __printf(4, 5)
135 void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
136                const char *fmt, ...);
137 
138 extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type);
139 extern __printf(2, 3)
140 void audit_log_format(struct audit_buffer *ab, const char *fmt, ...);
141 extern void                 audit_log_end(struct audit_buffer *ab);
142 extern bool                 audit_string_contains_control(const char *string,
143                                                           size_t len);
144 extern void                 audit_log_n_hex(struct audit_buffer *ab,
145                                           const unsigned char *buf,
146                                           size_t len);
147 extern void                 audit_log_n_string(struct audit_buffer *ab,
148                                                const char *buf,
149                                                size_t n);
150 extern void                 audit_log_n_untrustedstring(struct audit_buffer *ab,
151                                                         const char *string,
152                                                         size_t n);
153 extern void                 audit_log_untrustedstring(struct audit_buffer *ab,
154                                                       const char *string);
155 extern void                 audit_log_d_path(struct audit_buffer *ab,
156                                              const char *prefix,
157                                              const struct path *path);
158 extern void                 audit_log_key(struct audit_buffer *ab,
159                                           char *key);
160 extern void                 audit_log_link_denied(const char *operation);
161 extern void                 audit_log_lost(const char *message);
162 
163 extern int audit_log_task_context(struct audit_buffer *ab);
164 extern void audit_log_task_info(struct audit_buffer *ab);
165 
166 extern int                  audit_update_lsm_rules(void);
167 
168                                 /* Private API (for audit.c only) */
169 extern int audit_rule_change(int type, int seq, void *data, size_t datasz);
170 extern int audit_list_rules_send(struct sk_buff *request_skb, int seq);
171 
172 extern int audit_set_loginuid(kuid_t loginuid);
173 
174 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
175 {
176         return tsk->loginuid;
177 }
178 
179 static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
180 {
181         return tsk->sessionid;
182 }
183 
184 extern u32 audit_enabled;
185 
186 extern int audit_signal_info(int sig, struct task_struct *t);
187 
188 #else /* CONFIG_AUDIT */
189 static inline __printf(4, 5)
190 void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
191                const char *fmt, ...)
192 { }
193 static inline struct audit_buffer *audit_log_start(struct audit_context *ctx,
194                                                    gfp_t gfp_mask, int type)
195 {
196         return NULL;
197 }
198 static inline __printf(2, 3)
199 void audit_log_format(struct audit_buffer *ab, const char *fmt, ...)
200 { }
201 static inline void audit_log_end(struct audit_buffer *ab)
202 { }
203 static inline void audit_log_n_hex(struct audit_buffer *ab,
204                                    const unsigned char *buf, size_t len)
205 { }
206 static inline void audit_log_n_string(struct audit_buffer *ab,
207                                       const char *buf, size_t n)
208 { }
209 static inline void  audit_log_n_untrustedstring(struct audit_buffer *ab,
210                                                 const char *string, size_t n)
211 { }
212 static inline void audit_log_untrustedstring(struct audit_buffer *ab,
213                                              const char *string)
214 { }
215 static inline void audit_log_d_path(struct audit_buffer *ab,
216                                     const char *prefix,
217                                     const struct path *path)
218 { }
219 static inline void audit_log_key(struct audit_buffer *ab, char *key)
220 { }
221 static inline void audit_log_link_denied(const char *string)
222 { }
223 static inline int audit_log_task_context(struct audit_buffer *ab)
224 {
225         return 0;
226 }
227 static inline void audit_log_task_info(struct audit_buffer *ab)
228 { }
229 
230 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
231 {
232         return INVALID_UID;
233 }
234 
235 static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
236 {
237         return AUDIT_SID_UNSET;
238 }
239 
240 #define audit_enabled AUDIT_OFF
241 
242 static inline int audit_signal_info(int sig, struct task_struct *t)
243 {
244         return 0;
245 }
246 
247 #endif /* CONFIG_AUDIT */
248 
249 #ifdef CONFIG_AUDIT_COMPAT_GENERIC
250 #define audit_is_compat(arch)  (!((arch) & __AUDIT_ARCH_64BIT))
251 #else
252 #define audit_is_compat(arch)  false
253 #endif
254 
255 #ifdef CONFIG_AUDITSYSCALL
256 #include <asm/syscall.h> /* for syscall_get_arch() */
257 
258 /* These are defined in auditsc.c */
259                                 /* Public API */
260 extern int  audit_alloc(struct task_struct *task);
261 extern void __audit_free(struct task_struct *task);
262 extern void __audit_syscall_entry(int major, unsigned long a0, unsigned long a1,
263                                   unsigned long a2, unsigned long a3);
264 extern void __audit_syscall_exit(int ret_success, long ret_value);
265 extern struct filename *__audit_reusename(const __user char *uptr);
266 extern void __audit_getname(struct filename *name);
267 
268 #define AUDIT_INODE_PARENT      1       /* dentry represents the parent */
269 #define AUDIT_INODE_HIDDEN      2       /* audit record should be hidden */
270 #define AUDIT_INODE_NOEVAL      4       /* audit record incomplete */
271 extern void __audit_inode(struct filename *name, const struct dentry *dentry,
272                                 unsigned int flags);
273 extern void __audit_file(const struct file *);
274 extern void __audit_inode_child(struct inode *parent,
275                                 const struct dentry *dentry,
276                                 const unsigned char type);
277 extern void audit_seccomp(unsigned long syscall, long signr, int code);
278 extern void audit_seccomp_actions_logged(const char *names,
279                                          const char *old_names, int res);
280 extern void __audit_ptrace(struct task_struct *t);
281 
282 static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
283 {
284         task->audit_context = ctx;
285 }
286 
287 static inline struct audit_context *audit_context(void)
288 {
289         return current->audit_context;
290 }
291 
292 static inline bool audit_dummy_context(void)
293 {
294         void *p = audit_context();
295         return !p || *(int *)p;
296 }
297 static inline void audit_free(struct task_struct *task)
298 {
299         if (unlikely(task->audit_context))
300                 __audit_free(task);
301 }
302 static inline void audit_syscall_entry(int major, unsigned long a0,
303                                        unsigned long a1, unsigned long a2,
304                                        unsigned long a3)
305 {
306         if (unlikely(audit_context()))
307                 __audit_syscall_entry(major, a0, a1, a2, a3);
308 }
309 static inline void audit_syscall_exit(void *pt_regs)
310 {
311         if (unlikely(audit_context())) {
312                 int success = is_syscall_success(pt_regs);
313                 long return_code = regs_return_value(pt_regs);
314 
315                 __audit_syscall_exit(success, return_code);
316         }
317 }
318 static inline struct filename *audit_reusename(const __user char *name)
319 {
320         if (unlikely(!audit_dummy_context()))
321                 return __audit_reusename(name);
322         return NULL;
323 }
324 static inline void audit_getname(struct filename *name)
325 {
326         if (unlikely(!audit_dummy_context()))
327                 __audit_getname(name);
328 }
329 static inline void audit_inode(struct filename *name,
330                                 const struct dentry *dentry,
331                                 unsigned int flags) {
332         if (unlikely(!audit_dummy_context())) {
333                 unsigned int aflags = 0;
334 
335                 if (flags & LOOKUP_PARENT)
336                         aflags |= AUDIT_INODE_PARENT;
337                 if (flags & LOOKUP_NO_EVAL)
338                         aflags |= AUDIT_INODE_NOEVAL;
339                 __audit_inode(name, dentry, aflags);
340         }
341 }
342 static inline void audit_file(struct file *file)
343 {
344         if (unlikely(!audit_dummy_context()))
345                 __audit_file(file);
346 }
347 static inline void audit_inode_parent_hidden(struct filename *name,
348                                                 const struct dentry *dentry)
349 {
350         if (unlikely(!audit_dummy_context()))
351                 __audit_inode(name, dentry,
352                                 AUDIT_INODE_PARENT | AUDIT_INODE_HIDDEN);
353 }
354 static inline void audit_inode_child(struct inode *parent,
355                                      const struct dentry *dentry,
356                                      const unsigned char type) {
357         if (unlikely(!audit_dummy_context()))
358                 __audit_inode_child(parent, dentry, type);
359 }
360 void audit_core_dumps(long signr);
361 
362 static inline void audit_ptrace(struct task_struct *t)
363 {
364         if (unlikely(!audit_dummy_context()))
365                 __audit_ptrace(t);
366 }
367 
368                                 /* Private API (for audit.c only) */
369 extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
370 extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode);
371 extern void __audit_bprm(struct linux_binprm *bprm);
372 extern int __audit_socketcall(int nargs, unsigned long *args);
373 extern int __audit_sockaddr(int len, void *addr);
374 extern void __audit_fd_pair(int fd1, int fd2);
375 extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr);
376 extern void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec64 *abs_timeout);
377 extern void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification);
378 extern void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat);
379 extern int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
380                                   const struct cred *new,
381                                   const struct cred *old);
382 extern void __audit_log_capset(const struct cred *new, const struct cred *old);
383 extern void __audit_mmap_fd(int fd, int flags);
384 extern void __audit_log_kern_module(char *name);
385 extern void __audit_fanotify(unsigned int response);
386 extern void __audit_tk_injoffset(struct timespec64 offset);
387 extern void __audit_ntp_log(const struct audit_ntp_data *ad);
388 
389 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
390 {
391         if (unlikely(!audit_dummy_context()))
392                 __audit_ipc_obj(ipcp);
393 }
394 static inline void audit_fd_pair(int fd1, int fd2)
395 {
396         if (unlikely(!audit_dummy_context()))
397                 __audit_fd_pair(fd1, fd2);
398 }
399 static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode)
400 {
401         if (unlikely(!audit_dummy_context()))
402                 __audit_ipc_set_perm(qbytes, uid, gid, mode);
403 }
404 static inline void audit_bprm(struct linux_binprm *bprm)
405 {
406         if (unlikely(!audit_dummy_context()))
407                 __audit_bprm(bprm);
408 }
409 static inline int audit_socketcall(int nargs, unsigned long *args)
410 {
411         if (unlikely(!audit_dummy_context()))
412                 return __audit_socketcall(nargs, args);
413         return 0;
414 }
415 
416 static inline int audit_socketcall_compat(int nargs, u32 *args)
417 {
418         unsigned long a[AUDITSC_ARGS];
419         int i;
420 
421         if (audit_dummy_context())
422                 return 0;
423 
424         for (i = 0; i < nargs; i++)
425                 a[i] = (unsigned long)args[i];
426         return __audit_socketcall(nargs, a);
427 }
428 
429 static inline int audit_sockaddr(int len, void *addr)
430 {
431         if (unlikely(!audit_dummy_context()))
432                 return __audit_sockaddr(len, addr);
433         return 0;
434 }
435 static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
436 {
437         if (unlikely(!audit_dummy_context()))
438                 __audit_mq_open(oflag, mode, attr);
439 }
440 static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec64 *abs_timeout)
441 {
442         if (unlikely(!audit_dummy_context()))
443                 __audit_mq_sendrecv(mqdes, msg_len, msg_prio, abs_timeout);
444 }
445 static inline void audit_mq_notify(mqd_t mqdes, const struct sigevent *notification)
446 {
447         if (unlikely(!audit_dummy_context()))
448                 __audit_mq_notify(mqdes, notification);
449 }
450 static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
451 {
452         if (unlikely(!audit_dummy_context()))
453                 __audit_mq_getsetattr(mqdes, mqstat);
454 }
455 
456 static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
457                                        const struct cred *new,
458                                        const struct cred *old)
459 {
460         if (unlikely(!audit_dummy_context()))
461                 return __audit_log_bprm_fcaps(bprm, new, old);
462         return 0;
463 }
464 
465 static inline void audit_log_capset(const struct cred *new,
466                                    const struct cred *old)
467 {
468         if (unlikely(!audit_dummy_context()))
469                 __audit_log_capset(new, old);
470 }
471 
472 static inline void audit_mmap_fd(int fd, int flags)
473 {
474         if (unlikely(!audit_dummy_context()))
475                 __audit_mmap_fd(fd, flags);
476 }
477 
478 static inline void audit_log_kern_module(char *name)
479 {
480         if (!audit_dummy_context())
481                 __audit_log_kern_module(name);
482 }
483 
484 static inline void audit_fanotify(unsigned int response)
485 {
486         if (!audit_dummy_context())
487                 __audit_fanotify(response);
488 }
489 
490 static inline void audit_tk_injoffset(struct timespec64 offset)
491 {
492         /* ignore no-op events */
493         if (offset.tv_sec == 0 && offset.tv_nsec == 0)
494                 return;
495 
496         if (!audit_dummy_context())
497                 __audit_tk_injoffset(offset);
498 }
499 
500 static inline void audit_ntp_init(struct audit_ntp_data *ad)
501 {
502         memset(ad, 0, sizeof(*ad));
503 }
504 
505 static inline void audit_ntp_set_old(struct audit_ntp_data *ad,
506                                      enum audit_ntp_type type, long long val)
507 {
508         ad->vals[type].oldval = val;
509 }
510 
511 static inline void audit_ntp_set_new(struct audit_ntp_data *ad,
512                                      enum audit_ntp_type type, long long val)
513 {
514         ad->vals[type].newval = val;
515 }
516 
517 static inline void audit_ntp_log(const struct audit_ntp_data *ad)
518 {
519         if (!audit_dummy_context())
520                 __audit_ntp_log(ad);
521 }
522 
523 extern int audit_n_rules;
524 extern int audit_signals;
525 #else /* CONFIG_AUDITSYSCALL */
526 static inline int audit_alloc(struct task_struct *task)
527 {
528         return 0;
529 }
530 static inline void audit_free(struct task_struct *task)
531 { }
532 static inline void audit_syscall_entry(int major, unsigned long a0,
533                                        unsigned long a1, unsigned long a2,
534                                        unsigned long a3)
535 { }
536 static inline void audit_syscall_exit(void *pt_regs)
537 { }
538 static inline bool audit_dummy_context(void)
539 {
540         return true;
541 }
542 static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
543 { }
544 static inline struct audit_context *audit_context(void)
545 {
546         return NULL;
547 }
548 static inline struct filename *audit_reusename(const __user char *name)
549 {
550         return NULL;
551 }
552 static inline void audit_getname(struct filename *name)
553 { }
554 static inline void __audit_inode(struct filename *name,
555                                         const struct dentry *dentry,
556                                         unsigned int flags)
557 { }
558 static inline void __audit_inode_child(struct inode *parent,
559                                         const struct dentry *dentry,
560                                         const unsigned char type)
561 { }
562 static inline void audit_inode(struct filename *name,
563                                 const struct dentry *dentry,
564                                 unsigned int parent)
565 { }
566 static inline void audit_file(struct file *file)
567 {
568 }
569 static inline void audit_inode_parent_hidden(struct filename *name,
570                                 const struct dentry *dentry)
571 { }
572 static inline void audit_inode_child(struct inode *parent,
573                                      const struct dentry *dentry,
574                                      const unsigned char type)
575 { }
576 static inline void audit_core_dumps(long signr)
577 { }
578 static inline void audit_seccomp(unsigned long syscall, long signr, int code)
579 { }
580 static inline void audit_seccomp_actions_logged(const char *names,
581                                                 const char *old_names, int res)
582 { }
583 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
584 { }
585 static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid,
586                                         gid_t gid, umode_t mode)
587 { }
588 static inline void audit_bprm(struct linux_binprm *bprm)
589 { }
590 static inline int audit_socketcall(int nargs, unsigned long *args)
591 {
592         return 0;
593 }
594 
595 static inline int audit_socketcall_compat(int nargs, u32 *args)
596 {
597         return 0;
598 }
599 
600 static inline void audit_fd_pair(int fd1, int fd2)
601 { }
602 static inline int audit_sockaddr(int len, void *addr)
603 {
604         return 0;
605 }
606 static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
607 { }
608 static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len,
609                                      unsigned int msg_prio,
610                                      const struct timespec64 *abs_timeout)
611 { }
612 static inline void audit_mq_notify(mqd_t mqdes,
613                                    const struct sigevent *notification)
614 { }
615 static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
616 { }
617 static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
618                                        const struct cred *new,
619                                        const struct cred *old)
620 {
621         return 0;
622 }
623 static inline void audit_log_capset(const struct cred *new,
624                                     const struct cred *old)
625 { }
626 static inline void audit_mmap_fd(int fd, int flags)
627 { }
628 
629 static inline void audit_log_kern_module(char *name)
630 {
631 }
632 
633 static inline void audit_fanotify(unsigned int response)
634 { }
635 
636 static inline void audit_tk_injoffset(struct timespec64 offset)
637 { }
638 
639 static inline void audit_ntp_init(struct audit_ntp_data *ad)
640 { }
641 
642 static inline void audit_ntp_set_old(struct audit_ntp_data *ad,
643                                      enum audit_ntp_type type, long long val)
644 { }
645 
646 static inline void audit_ntp_set_new(struct audit_ntp_data *ad,
647                                      enum audit_ntp_type type, long long val)
648 { }
649 
650 static inline void audit_ntp_log(const struct audit_ntp_data *ad)
651 { }
652 
653 static inline void audit_ptrace(struct task_struct *t)
654 { }
655 #define audit_n_rules 0
656 #define audit_signals 0
657 #endif /* CONFIG_AUDITSYSCALL */
658 
659 static inline bool audit_loginuid_set(struct task_struct *tsk)
660 {
661         return uid_valid(audit_get_loginuid(tsk));
662 }
663 
664 static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
665 {
666         audit_log_n_string(ab, buf, strlen(buf));
667 }
668 
669 #endif
670 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp