Philip Martin wrote on Tue, Jan 27, 2015 at 11:28:35 +0000:
> Daniel Shahaf <d...@daniel.shahaf.name> writes:
> 
> > +static const char *
> > +systemd_release(apr_pool_t *pool)
> > +{
> > +  svn_error_t *err;
> > +  svn_stream_t *stream;
> > +
> > +  err = svn_stream_open_readonly(&stream, "/etc/os-release", pool, pool);
...
> > +      if (!strncmp(line->data, "PRETTY_NAME=", 12))
> > +        return remove_shell_quoting(line, 12, pool);
> 
> The file below the stream is still open and will remain open until the
> pool is cleared and that also clears the result.  scratch/result pools
> would allow the caller to close the stream and keep the result.  It
> might be better to arrange for this function to close the stream,
> perhaps just assume the file is small and read it all into memory.
> 

Is that a problem in practice?

Where should we introduce dual pools?  The callstack is single-pool all
the way to the public entry point svn_version_extended().  We prefer to
avoid creating subpools in functions that don't do a lot of work, so if
we want to convert to dual-pools we'll need to revv that function.

Which I don't object to, but I think should be in a separate patch, not
part of this one.

The sibling function lsb_release() has the same problem.

Thanks for the review,

Daniel

Reply via email to