Fix access to uninitialized memory in our UTF8 validity checker. For static strings like "", this violated C99, 6.2.4.5 and 3.17.2.
Fix access to uninitialized memory in our UTF8 validity checker.
For static strings like "", this violated C99, 6.2.4.5 and 3.17.2.

The code path for C strings only fully worked for APR allocated memory
and could fail otherwise on systems with fine-grained boundary checks.

This patch simply eliminates the C string specific implementation and
reuses the equally efficient svn_utf__last_valid function.  Calling
strlen is not an added overhead here:  If the string is ASCII-7 only,
strlen is about as efficient as first_non_fsm_start_char_cstring's
implicit EOS check.  If the string contains chars >= 0x80, the much
more expensive state machine code will dominate the runtime.

Reported by: Hanno Böck <hanno{_AT_}hboeck.de>

* notes/knobs
  (SVN_UTF_NO_UNINITIALISED_ACCESS): Remove section about this knob and
                                     update the index. Our code no longer
                                     uses it.

* subversion/libsvn_subr/utf_validate.c
  (first_non_fsm_start_char_cstring): Remove because it is no longer used. 
  (svn_utf__cstring_is_valid): Implement in terms of svn_utf__last_valid.

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@1722860 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion