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