xref: /freebsd/contrib/openpam/doc/man/openpam_straddch.3 (revision ea80740663ec3d110656ea6911c7166e6f1e8e17)
12f3ed619SDag-Erling Smørgrav.\"-
22f3ed619SDag-Erling Smørgrav.\" Copyright (c) 2001-2003 Networks Associates Technology, Inc.
32f3ed619SDag-Erling Smørgrav.\" Copyright (c) 2004-2011 Dag-Erling Smørgrav
42f3ed619SDag-Erling Smørgrav.\" All rights reserved.
52f3ed619SDag-Erling Smørgrav.\"
62f3ed619SDag-Erling Smørgrav.\" This software was developed for the FreeBSD Project by ThinkSec AS and
72f3ed619SDag-Erling Smørgrav.\" Network Associates Laboratories, the Security Research Division of
82f3ed619SDag-Erling Smørgrav.\" Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
92f3ed619SDag-Erling Smørgrav.\" ("CBOSS"), as part of the DARPA CHATS research program.
102f3ed619SDag-Erling Smørgrav.\"
112f3ed619SDag-Erling Smørgrav.\" Redistribution and use in source and binary forms, with or without
122f3ed619SDag-Erling Smørgrav.\" modification, are permitted provided that the following conditions
132f3ed619SDag-Erling Smørgrav.\" are met:
142f3ed619SDag-Erling Smørgrav.\" 1. Redistributions of source code must retain the above copyright
152f3ed619SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer.
162f3ed619SDag-Erling Smørgrav.\" 2. Redistributions in binary form must reproduce the above copyright
172f3ed619SDag-Erling Smørgrav.\"    notice, this list of conditions and the following disclaimer in the
182f3ed619SDag-Erling Smørgrav.\"    documentation and/or other materials provided with the distribution.
192f3ed619SDag-Erling Smørgrav.\" 3. The name of the author may not be used to endorse or promote
202f3ed619SDag-Erling Smørgrav.\"    products derived from this software without specific prior written
212f3ed619SDag-Erling Smørgrav.\"    permission.
222f3ed619SDag-Erling Smørgrav.\"
232f3ed619SDag-Erling Smørgrav.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
242f3ed619SDag-Erling Smørgrav.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
252f3ed619SDag-Erling Smørgrav.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
262f3ed619SDag-Erling Smørgrav.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
272f3ed619SDag-Erling Smørgrav.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
282f3ed619SDag-Erling Smørgrav.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
292f3ed619SDag-Erling Smørgrav.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
302f3ed619SDag-Erling Smørgrav.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
312f3ed619SDag-Erling Smørgrav.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
322f3ed619SDag-Erling Smørgrav.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
332f3ed619SDag-Erling Smørgrav.\" SUCH DAMAGE.
342f3ed619SDag-Erling Smørgrav.\"
352f3ed619SDag-Erling Smørgrav.\" $Id$
362f3ed619SDag-Erling Smørgrav.\"
37*ea807406SDag-Erling Smørgrav.Dd March 3, 2013
382f3ed619SDag-Erling Smørgrav.Dt OPENPAM_STRADDCH 3
392f3ed619SDag-Erling Smørgrav.Os
402f3ed619SDag-Erling Smørgrav.Sh NAME
412f3ed619SDag-Erling Smørgrav.Nm openpam_straddch
422f3ed619SDag-Erling Smørgrav.Nd add a character to a string, expanding the buffer if needed
432f3ed619SDag-Erling Smørgrav.Sh LIBRARY
442f3ed619SDag-Erling Smørgrav.Lb libpam
452f3ed619SDag-Erling Smørgrav.Sh SYNOPSIS
462f3ed619SDag-Erling Smørgrav.In sys/types.h
472f3ed619SDag-Erling Smørgrav.In security/pam_appl.h
482f3ed619SDag-Erling Smørgrav.In security/openpam.h
492f3ed619SDag-Erling Smørgrav.Ft "int"
502f3ed619SDag-Erling Smørgrav.Fn openpam_straddch "char **str" "size_t *size" "size_t *len" "int ch"
512f3ed619SDag-Erling Smørgrav.Sh DESCRIPTION
522f3ed619SDag-Erling SmørgravThe
532f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
542f3ed619SDag-Erling Smørgravfunction appends a character to a dynamically
552f3ed619SDag-Erling Smørgravallocated NUL-terminated buffer, reallocating the buffer as needed.
562f3ed619SDag-Erling Smørgrav.Pp
572f3ed619SDag-Erling SmørgravThe
582f3ed619SDag-Erling Smørgrav.Fa str
592f3ed619SDag-Erling Smørgravargument points to a variable containing either a pointer to
602f3ed619SDag-Erling Smørgravan existing buffer or
612f3ed619SDag-Erling Smørgrav.Dv NULL .
622f3ed619SDag-Erling SmørgravIf the value of the variable pointed to by
632f3ed619SDag-Erling Smørgrav.Fa str
642f3ed619SDag-Erling Smørgravis
652f3ed619SDag-Erling Smørgrav.Dv NULL ,
662f3ed619SDag-Erling Smørgrava new buffer
672f3ed619SDag-Erling Smørgravis allocated.
682f3ed619SDag-Erling Smørgrav.Pp
692f3ed619SDag-Erling SmørgravThe
702f3ed619SDag-Erling Smørgrav.Fa size
712f3ed619SDag-Erling Smørgravand
722f3ed619SDag-Erling Smørgrav.Fa len
732f3ed619SDag-Erling Smørgravargument point to variables used to hold the size
742f3ed619SDag-Erling Smørgravof the buffer and the length of the string it contains, respectively.
752f3ed619SDag-Erling Smørgrav.Pp
76*ea807406SDag-Erling SmørgravThe final argument,
77*ea807406SDag-Erling Smørgrav.Fa ch ,
78*ea807406SDag-Erling Smørgravis the character that should be appended to
79*ea807406SDag-Erling Smørgravthe string.  If
80*ea807406SDag-Erling Smørgrav.Fa ch
81*ea807406SDag-Erling Smørgravis 0, nothing is appended, but a new buffer is
82*ea807406SDag-Erling Smørgravstill allocated if
83*ea807406SDag-Erling Smørgrav.Fa str
84*ea807406SDag-Erling Smørgravis NULL.  This can be used to
85*ea807406SDag-Erling Smørgrav.Do
86*ea807406SDag-Erling Smørgravbootstrap
87*ea807406SDag-Erling Smørgrav.Dc
88*ea807406SDag-Erling Smørgravthe
89*ea807406SDag-Erling Smørgravstring.
90*ea807406SDag-Erling Smørgrav.Pp
912f3ed619SDag-Erling SmørgravIf a new buffer is allocated or an existing buffer is reallocated to
922f3ed619SDag-Erling Smørgravmake room for the additional character,
932f3ed619SDag-Erling Smørgrav.Fa str
942f3ed619SDag-Erling Smørgravand
952f3ed619SDag-Erling Smørgrav.Fa size
962f3ed619SDag-Erling Smørgravare updated
972f3ed619SDag-Erling Smørgravaccordingly.
982f3ed619SDag-Erling Smørgrav.Pp
992f3ed619SDag-Erling SmørgravThe
1002f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
1012f3ed619SDag-Erling Smørgravfunction ensures that the buffer is always
1022f3ed619SDag-Erling SmørgravNUL-terminated.
1032f3ed619SDag-Erling Smørgrav.Pp
1042f3ed619SDag-Erling SmørgravIf the
1052f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
1062f3ed619SDag-Erling Smørgravfunction is successful, it increments the
1072f3ed619SDag-Erling Smørgravinteger variable pointed to by
1082f3ed619SDag-Erling Smørgrav.Fa len
109*ea807406SDag-Erling Smørgrav(unless
110*ea807406SDag-Erling Smørgrav.Fa ch
111*ea807406SDag-Erling Smørgravwas 0) and returns 0.
1122f3ed619SDag-Erling SmørgravOtherwise, it leaves the variables pointed to by
1132f3ed619SDag-Erling Smørgrav.Fa str ,
1142f3ed619SDag-Erling Smørgrav.Fa size
1152f3ed619SDag-Erling Smørgravand
1162f3ed619SDag-Erling Smørgrav.Fa len
1172f3ed619SDag-Erling Smørgravunmodified, sets
1182f3ed619SDag-Erling Smørgrav.Va errno
1192f3ed619SDag-Erling Smørgravto
1202f3ed619SDag-Erling Smørgrav.Dv ENOMEM
1212f3ed619SDag-Erling Smørgravand returns -1.
1222f3ed619SDag-Erling Smørgrav.Pp
1232f3ed619SDag-Erling Smørgrav.Sh RETURN VALUES
1242f3ed619SDag-Erling SmørgravThe
1252f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
1262f3ed619SDag-Erling Smørgravfunction returns 0 on success and -1 on failure.
1272f3ed619SDag-Erling Smørgrav.Sh SEE ALSO
1282f3ed619SDag-Erling Smørgrav.Xr pam 3 ,
1292f3ed619SDag-Erling Smørgrav.Xr pam_strerror 3
1302f3ed619SDag-Erling Smørgrav.Sh STANDARDS
1312f3ed619SDag-Erling SmørgravThe
1322f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
1332f3ed619SDag-Erling Smørgravfunction is an OpenPAM extension.
1342f3ed619SDag-Erling Smørgrav.Sh AUTHORS
1352f3ed619SDag-Erling SmørgravThe
1362f3ed619SDag-Erling Smørgrav.Fn openpam_straddch
1372f3ed619SDag-Erling Smørgravfunction and this manual page were
1382f3ed619SDag-Erling Smørgravdeveloped by
1392f3ed619SDag-Erling Smørgrav.An Dag-Erling Sm\(/orgrav Aq des@des.no .
140