1*ade90846SJoerg Sonnenberger.\"- 2*ade90846SJoerg Sonnenberger.\" Copyright (c) 2001-2003 Networks Associates Technology, Inc. 3*ade90846SJoerg Sonnenberger.\" All rights reserved. 4*ade90846SJoerg Sonnenberger.\" 5*ade90846SJoerg Sonnenberger.\" This software was developed for the FreeBSD Project by ThinkSec AS and 6*ade90846SJoerg Sonnenberger.\" Network Associates Laboratories, the Security Research Division of 7*ade90846SJoerg Sonnenberger.\" Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 8*ade90846SJoerg Sonnenberger.\" ("CBOSS"), as part of the DARPA CHATS research program. 9*ade90846SJoerg Sonnenberger.\" 10*ade90846SJoerg Sonnenberger.\" Redistribution and use in source and binary forms, with or without 11*ade90846SJoerg Sonnenberger.\" modification, are permitted provided that the following conditions 12*ade90846SJoerg Sonnenberger.\" are met: 13*ade90846SJoerg Sonnenberger.\" 1. Redistributions of source code must retain the above copyright 14*ade90846SJoerg Sonnenberger.\" notice, this list of conditions and the following disclaimer. 15*ade90846SJoerg Sonnenberger.\" 2. Redistributions in binary form must reproduce the above copyright 16*ade90846SJoerg Sonnenberger.\" notice, this list of conditions and the following disclaimer in the 17*ade90846SJoerg Sonnenberger.\" documentation and/or other materials provided with the distribution. 18*ade90846SJoerg Sonnenberger.\" 3. The name of the author may not be used to endorse or promote 19*ade90846SJoerg Sonnenberger.\" products derived from this software without specific prior written 20*ade90846SJoerg Sonnenberger.\" permission. 21*ade90846SJoerg Sonnenberger.\" 22*ade90846SJoerg Sonnenberger.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 23*ade90846SJoerg Sonnenberger.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24*ade90846SJoerg Sonnenberger.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25*ade90846SJoerg Sonnenberger.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 26*ade90846SJoerg Sonnenberger.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27*ade90846SJoerg Sonnenberger.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28*ade90846SJoerg Sonnenberger.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29*ade90846SJoerg Sonnenberger.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*ade90846SJoerg Sonnenberger.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31*ade90846SJoerg Sonnenberger.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32*ade90846SJoerg Sonnenberger.\" SUCH DAMAGE. 33*ade90846SJoerg Sonnenberger.\" 34*ade90846SJoerg Sonnenberger.\" $P4$ 35*ade90846SJoerg Sonnenberger.\" 36*ade90846SJoerg Sonnenberger.Dd June 16, 2005 37*ade90846SJoerg Sonnenberger.Dt OPENPAM_READLINE 3 38*ade90846SJoerg Sonnenberger.Os 39*ade90846SJoerg Sonnenberger.Sh NAME 40*ade90846SJoerg Sonnenberger.Nm openpam_readline 41*ade90846SJoerg Sonnenberger.Nd read a line from a file 42*ade90846SJoerg Sonnenberger.Sh LIBRARY 43*ade90846SJoerg Sonnenberger.Lb libpam 44*ade90846SJoerg Sonnenberger.Sh SYNOPSIS 45*ade90846SJoerg Sonnenberger.In sys/types.h 46*ade90846SJoerg Sonnenberger.In security/pam_appl.h 47*ade90846SJoerg Sonnenberger.In security/openpam.h 48*ade90846SJoerg Sonnenberger.Ft "char *" 49*ade90846SJoerg Sonnenberger.Fn openpam_readline "FILE *f" "int *lineno" "size_t *lenp" 50*ade90846SJoerg Sonnenberger.Sh DESCRIPTION 51*ade90846SJoerg SonnenbergerThe 52*ade90846SJoerg Sonnenberger.Nm 53*ade90846SJoerg Sonnenbergerfunction reads a line from a file, and returns it 54*ade90846SJoerg Sonnenbergerin a NUL-terminated buffer allocated with 55*ade90846SJoerg Sonnenberger.Xr malloc 3 . 56*ade90846SJoerg Sonnenberger.Pp 57*ade90846SJoerg SonnenbergerThe 58*ade90846SJoerg Sonnenberger.Nm 59*ade90846SJoerg Sonnenbergerfunction performs a certain amount of processing 60*ade90846SJoerg Sonnenbergeron the data it reads. 61*ade90846SJoerg SonnenbergerComments (introduced by a hash sign) are stripped, as is leading and 62*ade90846SJoerg Sonnenbergertrailing whitespace. 63*ade90846SJoerg SonnenbergerAny amount of linear whitespace is collapsed to a single space. 64*ade90846SJoerg SonnenbergerBlank lines are ignored. 65*ade90846SJoerg SonnenbergerIf a line ends in a backslash, the backslash is stripped and the next 66*ade90846SJoerg Sonnenbergerline is appended. 67*ade90846SJoerg Sonnenberger.Pp 68*ade90846SJoerg SonnenbergerIf 69*ade90846SJoerg Sonnenberger.Fa lineno 70*ade90846SJoerg Sonnenbergeris not 71*ade90846SJoerg Sonnenberger.Dv NULL , 72*ade90846SJoerg Sonnenbergerthe integer variable it points to is 73*ade90846SJoerg Sonnenbergerincremented every time a newline character is read. 74*ade90846SJoerg Sonnenberger.Pp 75*ade90846SJoerg SonnenbergerIf 76*ade90846SJoerg Sonnenberger.Fa lenp 77*ade90846SJoerg Sonnenbergeris not 78*ade90846SJoerg Sonnenberger.Dv NULL , 79*ade90846SJoerg Sonnenbergerthe length of the line (not including the 80*ade90846SJoerg Sonnenbergerterminating NUL character) is stored in the variable it points to. 81*ade90846SJoerg Sonnenberger.Pp 82*ade90846SJoerg SonnenbergerThe caller is responsible for releasing the returned buffer by passing 83*ade90846SJoerg Sonnenbergerit to 84*ade90846SJoerg Sonnenberger.Xr free 3 . 85*ade90846SJoerg Sonnenberger.Sh RETURN VALUES 86*ade90846SJoerg SonnenbergerThe 87*ade90846SJoerg Sonnenberger.Nm 88*ade90846SJoerg Sonnenbergerfunction returns 89*ade90846SJoerg Sonnenberger.Dv NULL 90*ade90846SJoerg Sonnenbergeron failure. 91*ade90846SJoerg Sonnenberger.Sh SEE ALSO 92*ade90846SJoerg Sonnenberger.Xr free 3 , 93*ade90846SJoerg Sonnenberger.Xr malloc 3 , 94*ade90846SJoerg Sonnenberger.Xr pam 3 95*ade90846SJoerg Sonnenberger.Sh STANDARDS 96*ade90846SJoerg SonnenbergerThe 97*ade90846SJoerg Sonnenberger.Nm 98*ade90846SJoerg Sonnenbergerfunction is an OpenPAM extension. 99*ade90846SJoerg Sonnenberger.Sh AUTHORS 100*ade90846SJoerg SonnenbergerThe 101*ade90846SJoerg Sonnenberger.Nm 102*ade90846SJoerg Sonnenbergerfunction and this manual page were developed for the 103*ade90846SJoerg Sonnenberger.Fx 104*ade90846SJoerg SonnenbergerProject by ThinkSec AS and Network Associates Laboratories, the 105*ade90846SJoerg SonnenbergerSecurity Research Division of Network Associates, Inc.& under 106*ade90846SJoerg SonnenbergerDARPA/SPAWAR contract N66001-01-C-8035 107*ade90846SJoerg Sonnenberger.Pq Dq CBOSS , 108*ade90846SJoerg Sonnenbergeras part of the DARPA CHATS research program. 109