Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190116205046.GK23599@brightrain.aerifal.cx>
Date: Wed, 16 Jan 2019 15:50:46 -0500
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: <shadow.h> function: fgetspent_r

On Wed, Jan 16, 2019 at 01:21:39PM -0600, A. Wilcox wrote:
> Hi muslers,
> 
> fgetspent_r[1] is a re-entrant version of fgetspent which stores all
> strings in a caller-provided buffer to ensure that the memory is owned
> by the caller instead of by the system.
> 
> It is present in Solaris 9[2] and higher, and glibc[3] Linux.  It is
> used by AccountsService[4].
> 
> Is it possible to add this API to musl?  I could try to write it, if so.
> 
> Best,
> --arw
> 
> 
> [1]: https://docs.oracle.com/cd/E88353_01/html/E37843/getspent-r-3c.html
> 
> [2]: https://docs.oracle.com/cd/E19683-01/816-5214/6mbcfdl0v/index.html
> 
> [3]: https://linux.die.net/man/3/getspnam_r
> 
> [4]: https://cgit.freedesktop.org/accountsservice/commit/?id=14ca4245

I don't see any good reason why it couldn't be added, but it doesn't
look like a direct refactoring of the existing function since it uses
the messy char[] buffer idiom like a bunch of other _r functions in
this family. I'm also not sure what should happen if the next entry
does not fit in the buffer. Should it discard the rest of the line and
move on (not retryable) or attempt to seek back?

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.