Hi,
Could you please send your e-mails to this list in plain text? That makes it much easier to answer in-line. I would recommend canonicalizing the uris before passing them to the function. That should fix most if not all problems in this error class. svn_uri_canonicalize for urls, svn_relpath_canonicalize and svn_dirent_canonicalize for local paths (or maybe svn_dirent_internal_style() if you want ‘\’ to ‘/’ conversion on Windows). Note that assert() is only fatal in debug/maintainer builds. In release builds these checks are removed. SVN_ERR_ASSERT() can be turned into reporting an error on initialization, which might be a good route for JavaHL. In SharpSvn (for .Net) I make the assertion callback throw a C++ exception, which can then be caught by callers higher in the chain as a .Net exception, while the C++ exception handling makes sure the pools are cleaned up while clearing the stack. Bert From: vladi...@berezniker.com [mailto:vladi...@berezniker.com] On Behalf Of Vladimir Berezniker Sent: zondag 24 juni 2012 19:18 To: dev@subversion.apache.org Subject: [RFC] Passing invalid uri to svn_ra_reparent causes JVM to abort when using JavaHL library (javahl-ra branch) Hi All, While implementing svn_ra_reparent() function in JavaHL, I created a test that sends string "BAD" uri to the reparent function (I am trying to make sure JavaHL can't take the JVM down). This causes segfault inside uri_skip_ancestor() function of the line 1483 of the dirent_uri.c file: assert(svn_uri_is_canonical(child_uri, NULL)); which is called from svn_uri_skip_ancestor() function. It seems a bit harsh to kill the whole JVM because caller passed a poorly formed URI to a function, but I am not quite sure what would be the right way of addressing this. If someone could point me in a right direction I'll prepare a patch for review. Thank you, Vladimir