1/* Check for invalid audit version (BZ#24122).
2 Copyright (C) 2019-2022 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
22unsigned int
23la_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
31void
32la_activity (uintptr_t *cookie, unsigned int flag)
33{
34 exit (EXIT_FAILURE);
35}
36
37char *
38la_objsearch (const char *name, uintptr_t *cookie, unsigned int flag)
39{
40 exit (EXIT_FAILURE);
41}
42
43unsigned int
44la_objopen (struct link_map *map, Lmid_t lmid, uintptr_t * cookie)
45{
46 exit (EXIT_FAILURE);
47}
48
49void
50la_preinit (uintptr_t * cookie)
51{
52 exit (EXIT_FAILURE);
53}
54
55uintptr_t
56#if __ELF_NATIVE_CLASS == 32
57la_symbind32 (Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
58 uintptr_t *defcook, unsigned int *flags, const char *symname)
59#else
60la_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
67unsigned int
68la_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
79ElfW(Addr)
80pltenter (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
87unsigned int
88pltexit (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}
94

source code of glibc/elf/tst-audit13mod1.c