(root)/
glibc-2.38/
elf/
tst-audit13mod1.c
       1  /* Check for invalid audit version (BZ#24122).
       2     Copyright (C) 2019-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #include <link.h>
      20  #include <stdlib.h>
      21  
      22  unsigned int
      23  la_version (unsigned int version)
      24  {
      25    /* The audit specification says that a version of 0 or a version
      26       greater than any version supported by the dynamic loader shall
      27       cause the module to be ignored.  */
      28    return 0;
      29  }
      30  
      31  void
      32  la_activity (uintptr_t *cookie, unsigned int flag)
      33  {
      34    exit (EXIT_FAILURE);
      35  }
      36  
      37  char *
      38  la_objsearch (const char *name, uintptr_t *cookie, unsigned int flag)
      39  {
      40    exit (EXIT_FAILURE);
      41  }
      42  
      43  unsigned int
      44  la_objopen (struct link_map *map, Lmid_t lmid, uintptr_t * cookie)
      45  {
      46    exit (EXIT_FAILURE);
      47  }
      48  
      49  void
      50  la_preinit (uintptr_t * cookie)
      51  {
      52    exit (EXIT_FAILURE);
      53  }
      54  
      55  uintptr_t
      56  #if __ELF_NATIVE_CLASS == 32
      57  la_symbind32 (Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
      58                uintptr_t *defcook, unsigned int *flags, const char *symname)
      59  #else
      60  la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
      61                uintptr_t *defcook, unsigned int *flags, const char *symname)
      62  #endif
      63  {
      64    exit (EXIT_FAILURE);
      65  }
      66  
      67  unsigned int
      68  la_objclose (uintptr_t * cookie)
      69  {
      70    exit (EXIT_FAILURE);
      71  }
      72  
      73  #include <tst-audit.h>
      74  #if (!defined (pltenter) || !defined (pltexit) || !defined (La_regs) \
      75       || !defined (La_retval) || !defined (int_retval))
      76  # error "architecture specific code needed in sysdeps/CPU/tst-audit.h"
      77  #endif
      78  
      79  ElfW(Addr)
      80  pltenter (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
      81            uintptr_t *defcook, La_regs *regs, unsigned int *flags,
      82            const char *symname, long int *framesizep)
      83  {
      84    exit (EXIT_FAILURE);
      85  }
      86  
      87  unsigned int
      88  pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
      89           uintptr_t *defcook, const La_regs *inregs, La_retval *outregs,
      90           const char *symname)
      91  {
      92    exit (EXIT_FAILURE);
      93  }