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