Hi Alexander,
thanks a lot for this report.
The fix is trivial, committed in r37939.
Good speed with svnkit!
~Neels
Alexander Sinyushkin wrote:
> Hello community,
>
> While syncing a repository where svn:eol-style was first set on a file
> and then removed in a subsequent revision I got a segmentation fault. As
> a result, svnsync can not synchronize the revision where the deletion of
> an svn:* property took place.
>
> When change_file_prop() is called for the file in question
> the property value is passed as null, I suppose.
> This value is passed then to normalize_string() which does not check the
> str parameter for null in its if clause:
>
> static svn_error_t*
> normalize_string(const svn_string_t **str,
> svn_boolean_t *was_normalized,
> apr_pool_t *pool)
> {
> *was_normalized = FALSE;
>
> /* Detect inconsistent line ending style simply by looking
> for carriage return (\r) characters. */
> if (strchr((*str)->data, '\r') != NULL)
> {
> /* Found some. Normalize. */
> const char* cstring = NULL;
> SVN_ERR(svn_subst_translate_cstring2((*str)->data, &cstring,
> "\n", TRUE,
> NULL, FALSE,
> pool));
> *str = svn_string_create(cstring, pool);
> *was_normalized = TRUE;
> }
>
> return SVN_NO_ERROR;
> }
>
>
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359689
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359733
Received on 2009-06-05 17:13:33 CEST