xref: /netbsd-src/external/bsd/openpam/dist/doc/man/openpam_straddch.3 (revision 7788a0781fe6ff2cce37368b4578a7ade0850cb1)
1.\"	$NetBSD: openpam_straddch.3,v 1.2 2013/07/20 21:40:04 wiz Exp $
2.\"
3.\"-
4.\" Copyright (c) 2001-2003 Networks Associates Technology, Inc.
5.\" Copyright (c) 2004-2011 Dag-Erling Smørgrav
6.\" All rights reserved.
7.\"
8.\" This software was developed for the FreeBSD Project by ThinkSec AS and
9.\" Network Associates Laboratories, the Security Research Division of
10.\" Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
11.\" ("CBOSS"), as part of the DARPA CHATS research program.
12.\"
13.\" Redistribution and use in source and binary forms, with or without
14.\" modification, are permitted provided that the following conditions
15.\" are met:
16.\" 1. Redistributions of source code must retain the above copyright
17.\"    notice, this list of conditions and the following disclaimer.
18.\" 2. Redistributions in binary form must reproduce the above copyright
19.\"    notice, this list of conditions and the following disclaimer in the
20.\"    documentation and/or other materials provided with the distribution.
21.\" 3. The name of the author may not be used to endorse or promote
22.\"    products derived from this software without specific prior written
23.\"    permission.
24.\"
25.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
26.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
29.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35.\" SUCH DAMAGE.
36.\"
37.\" Id
38.\"
39.Dd May 26, 2012
40.Dt OPENPAM_STRADDCH 3
41.Os
42.Sh NAME
43.Nm openpam_straddch
44.Nd add a character to a string, expanding the buffer if needed
45.Sh LIBRARY
46.Lb libpam
47.Sh SYNOPSIS
48.In sys/types.h
49.In security/pam_appl.h
50.In security/openpam.h
51.Ft "int"
52.Fn openpam_straddch "char **str" "size_t *size" "size_t *len" "int ch"
53.Sh DESCRIPTION
54The
55.Fn openpam_straddch
56function appends a character to a dynamically
57allocated NUL-terminated buffer, reallocating the buffer as needed.
58.Pp
59The
60.Fa str
61argument points to a variable containing either a pointer to
62an existing buffer or
63.Dv NULL .
64If the value of the variable pointed to by
65.Fa str
66is
67.Dv NULL ,
68a new buffer
69is allocated.
70.Pp
71The
72.Fa size
73and
74.Fa len
75argument point to variables used to hold the size
76of the buffer and the length of the string it contains, respectively.
77.Pp
78If a new buffer is allocated or an existing buffer is reallocated to
79make room for the additional character,
80.Fa str
81and
82.Fa size
83are updated
84accordingly.
85.Pp
86The
87.Fn openpam_straddch
88function ensures that the buffer is always
89NUL-terminated.
90.Pp
91If the
92.Fn openpam_straddch
93function is successful, it increments the
94integer variable pointed to by
95.Fa len
96and returns 0.
97Otherwise, it leaves the variables pointed to by
98.Fa str ,
99.Fa size
100and
101.Fa len
102unmodified, sets
103.Va errno
104to
105.Dv ENOMEM
106and returns -1.
107.Pp
108.Sh RETURN VALUES
109The
110.Fn openpam_straddch
111function returns 0 on success and -1 on failure.
112.Sh SEE ALSO
113.Xr pam 3 ,
114.Xr pam_strerror 3
115.Sh STANDARDS
116The
117.Fn openpam_straddch
118function is an OpenPAM extension.
119.Sh AUTHORS
120The
121.Fn openpam_straddch
122function and this manual page were
123developed by
124.An Dag-Erling Sm\(/orgrav Aq Mt des@des.no .
125