On Thu, Sep 06, 2007 at 06:18:34PM +0000, Kristian Høgsberg wrote:
On Thu, 2007-09-06 at 20:08 +0200, Pierre Habouzit wrote:
quoted
On Thu, Sep 06, 2007 at 05:59:29PM +0000, Kristian Høgsberg wrote:
quoted
On Thu, 2007-09-06 at 13:20 +0200, Pierre Habouzit wrote:
quoted
- memcpy(path.buf, base, baselen);
- memcpy(path.buf + baselen, filename, filenamelen);
- path.len = baselen + filenamelen;
- path.buf[path.len] = '\0';
+ strbuf_grow(&path, MAX(PATH_MAX, baselen + filenamelen + 1));
+ strbuf_reset(&path);
Does strbuf_reset() do anything here?
quoted
+ strbuf_add(&path, base, baselen);
Yes _reset() sets length to 0. so the add here will write at the start
of the buffer again. It definitely is important !
But where was length set to non-zero? path is initialized on entry to
the function, and strbuf_grow() just increases the allocation, not
length, right?
The path is static, hence when you reenter the function you have the
last value in it. The fact that it's static may be questionable, but it
was like it before, I kept it, I've supposed it was for performance
reasons.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org