rtld: properly handle root directory in load path (bug 30435)
[platform/upstream/glibc.git] / elf / dl-sysdep-open.h
1 /* System-specific call to open a shared object by name.  Stub version.
2    Copyright (C) 2015-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 #ifndef _DL_SYSDEP_OPEN_H
20 #define _DL_SYSDEP_OPEN_H       1
21
22 #include <assert.h>
23 #include <stddef.h>
24
25 /* NAME is a name without slashes, as it appears in a DT_NEEDED entry
26    or a dlopen call's argument or suchlike.  NAMELEN is (strlen (NAME) + 1).
27
28    Find NAME in an OS-dependent fashion, and return its "real" name.
29    Optionally fill in *FD with a file descriptor open on that file (or
30    else leave its initial value of -1).  The return value is a new
31    malloc'd string, which will be free'd by the caller.  If NAME is
32    resolved to an actual file that can be opened, then the return
33    value should name that file (and if *FD was not set, then a normal
34    __open call on that string will be made).  If *FD was set by some
35    other means than a normal open and there is no "real" name to use,
36    then __strdup (NAME) is fine (modulo error checking).  */
37
38 static inline char *
39 _dl_sysdep_open_object (const char *name, size_t namelen, int *fd)
40 {
41   assert (*fd == -1);
42   return NULL;
43 }
44
45 #endif  /* dl-sysdep-open.h */