(root)/
glibc-2.38/
nss/
compat-lookup.c
       1  /* Compatibility stubs of accidentally exported __nss_*_lookup functions.
       2     Copyright (C) 2017-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 <nsswitch.h>
      20  
      21  #include <shlib-compat.h>
      22  #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_27)
      23  
      24  # include <errno.h>
      25  
      26  /* On i386, the function calling convention changed from the standard
      27     ABI calling convention to three register parameters in glibc 2.8.
      28     The following error-returning stub happens to be compatible with
      29     glibc 2.7 and earlier and glibc 2.8 and later, even on i386.  */
      30  int
      31  attribute_compat_text_section
      32  __nss_passwd_lookup (nss_action_list *ni, const char *fct_name, void **fctp)
      33  {
      34    __set_errno (ENOSYS);
      35    return -1;
      36  }
      37  compat_symbol (libc, __nss_passwd_lookup, __nss_passwd_lookup, GLIBC_2_0);
      38  strong_alias (__nss_passwd_lookup, __nss_group_lookup)
      39  compat_symbol (libc, __nss_group_lookup, __nss_group_lookup, GLIBC_2_0);
      40  strong_alias (__nss_passwd_lookup, __nss_hosts_lookup)
      41  compat_symbol (libc, __nss_hosts_lookup, __nss_hosts_lookup, GLIBC_2_0);
      42  
      43  #endif /* SHLIB_COMPAT */
      44  
      45  #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_30)
      46  
      47  /* These functions were exported under a non-GLIBC_PRIVATE version,
      48     even though it is not usable externally due to the service_user
      49     (now nss_action_list) type dependency.  */
      50  
      51  int
      52  attribute_compat_text_section
      53  __nss_next (nss_action_list *ni, const char *fct_name, void **fctp, int status,
      54              int all_values)
      55  {
      56    return -1;
      57  }
      58  compat_symbol (libc, __nss_next, __nss_next, GLIBC_2_0);
      59  
      60  int
      61  attribute_compat_text_section
      62  __nss_database_lookup (const char *database, const char *alternate_name,
      63                         const char *defconfig, nss_action_list *ni)
      64  {
      65    *ni = NULL;
      66    return -1;
      67  }
      68  compat_symbol (libc, __nss_database_lookup, __nss_database_lookup, GLIBC_2_0);
      69  
      70  #endif /* SHLIB_COMPAT */