I (Julian Foad) wrote:

> I suggest we follow up by doing both of:
> 
>   * Change the implementation to always add an extra byte to that requested, 
> to 
> help buggy callers.  This is valid because the number passed in is already 
> only 
> a lower bound so callers can't assume that we don't increase it.
> 
>   * Rev the API to 'svn_stringbuf_ensure2()' and document that the 
> caller doesn't have to allow for the trailing NUL.
> 
> Of course the implementation of _ensure() and _ensure2() would then be 
> identical.  The point of adding one in the old _ensure() implementation is to 
> help callers in third-party code, given that we've demonstrated a high 
> chance of the existing API being misused.  The point of defining the 
> _ensure2() 
> API is so we can cleanly change callers to not add 1, without them 
> contradicting 
> the old API.  (It would add confusion for people reading the code if we 
> removed 
> the caller's "+1" and didn't rev the name.)

I'm following up with a patch in a new thread "[PATCH] String creation -- 
ensuring space for the NUL", 
<http://svn.haxx.se/dev/archive-2012-02/0415.shtml>.

- Julian

Reply via email to