You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2011/10/18 23:30:46 UTC
svn commit: r1185877 -
/subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c
Author: stefan2
Date: Tue Oct 18 21:30:46 2011
New Revision: 1185877
URL: http://svn.apache.org/viewvc?rev=1185877&view=rev
Log:
On integrate-string-improvements branch, make the new string creation
API comply with the implicit assumption that buffer[len] is writable.
Otherwise, some functions will SEGFAULT on those empty strings.
* subversion/libsvn_subr/svn_string.c
(svn_stringbuf_create_empty): return a writable empty string instead
of a constant one.
Modified:
subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c
Modified: subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c
URL: http://svn.apache.org/viewvc/subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c?rev=1185877&r1=1185876&r2=1185877&view=diff
==============================================================================
--- subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c (original)
+++ subversion/branches/integrate-string-improvements/subversion/libsvn_subr/svn_string.c Tue Oct 18 21:30:46 2011
@@ -246,10 +246,17 @@ create_stringbuf(char *data, apr_size_t
return new_string;
}
+static char empty_buffer[1] = {0};
+
svn_stringbuf_t *
svn_stringbuf_create_empty(apr_pool_t *pool)
{
- return create_stringbuf((char*)"", 0, 0, pool);
+ /* All instances share the same zero-length buffer.
+ * Some algorithms, however, assume that they may write
+ * the terminating zero. So, empty_buffer must be writable
+ * (a simple (char *)"" will cause SEGFAULTs). */
+
+ return create_stringbuf(empty_buffer, 0, 0, pool);
}
svn_stringbuf_t *