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 | |
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 | } |
94 | |