summaryrefslogtreecommitdiff
path: root/subversion/libsvn_subr/sysinfo.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2014-02-20 19:26:10 +0000
committerPeter Wemm <peter@FreeBSD.org>2014-02-20 19:26:10 +0000
commit219f5ebf8fca3572d8d4265d78d0e4670ca35a27 (patch)
treee6232088e2faabbf0f1a6e568df3285323f27c5c /subversion/libsvn_subr/sysinfo.c
parenteeb88685bfa4ef1c0639f1136d83ff19de1b4595 (diff)
Notes
Diffstat (limited to 'subversion/libsvn_subr/sysinfo.c')
-rw-r--r--subversion/libsvn_subr/sysinfo.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/subversion/libsvn_subr/sysinfo.c b/subversion/libsvn_subr/sysinfo.c
index 7c37822d10a3..a506310aa906 100644
--- a/subversion/libsvn_subr/sysinfo.c
+++ b/subversion/libsvn_subr/sysinfo.c
@@ -290,11 +290,21 @@ stringbuf_split_key(svn_stringbuf_t *buffer, char delim)
return NULL;
svn_stringbuf_strip_whitespace(buffer);
+
+ /* Now we split the currently allocated buffer in two parts:
+ - a const char * HEAD
+ - the remaining stringbuf_t. */
+
+ /* Create HEAD as '\0' terminated const char * */
key = buffer->data;
end = strchr(key, delim);
*end = '\0';
- buffer->len = 1 + end - key;
+
+ /* And update the TAIL to be a smaller, but still valid stringbuf */
buffer->data = end + 1;
+ buffer->len -= 1 + end - key;
+ buffer->blocksize -= 1 + end - key;
+
svn_stringbuf_strip_whitespace(buffer);
return key;