File: xgetspnam.c

package info (click to toggle)
shadow 1%3A4.17.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 66,752 kB
  • sloc: sh: 44,927; ansic: 34,406; xml: 12,252; exp: 3,691; makefile: 1,633; python: 722; yacc: 622; perl: 120; sed: 16
file content (41 lines) | stat: -rw-r--r-- 1,324 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * SPDX-FileCopyrightText: 2008 - 2009, Nicolas François
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

/*
 * According to the Linux-PAM documentation:
 *
 *  4.1. Care about standard library calls
 *
 *  In general, writers of authorization-granting applications should
 *  assume that each module is likely to call any or all 'libc' functions.
 *  For 'libc' functions that return pointers to static/dynamically
 *  allocated structures (ie.  the library allocates the memory and the
 *  user is not expected to 'free()' it) any module call to this function
 *  is likely to corrupt a pointer previously obtained by the application.
 *  The application programmer should either re-call such a 'libc'
 *  function after a call to the Linux-PAM library, or copy the structure
 *  contents to some safe area of memory before passing control to the
 *  Linux-PAM library.
 *
 *  Two important function classes that fall into this category are
 *  getpwnam(3) and syslog(3).
 *
 * This file provides wrapper to the getspnam or getspnam_r functions.
 */

#include <config.h>

#include "shadowio.h"

#define LOOKUP_TYPE	struct spwd
#define FUNCTION_NAME	getspnam
#define ARG_TYPE	const char *
#define ARG_NAME	name
#define DUP_FUNCTION	__spw_dup
#define HAVE_FUNCTION_R (defined HAVE_GETSPNAM_R)

#include "xgetXXbyYY.c"