Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-4082

'svn log --with-all-revprops' over ra-dav intolerant of XML-unsafe property values

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.7.x
    • 1.8.0
    • mod_dav_svn
    • None

    Description

      Over time, we've tried to tighten up some loose bits of our enforcement of
      revision log messages being stored in UTF-8.  One side effect appears to be that
      'svn log' will choke on the client-side if a log message is *not* UTF-8, as the
      XML parser finds this most disagreeable.
      
      But in researching this problem, I find that the mod_dav_svn's log handling code
      is just generally sloppy about its on-the-wire deliverables in this respect. 
      Not only does the logic in mod_dav_svn's log report handling rather
      optimistically assume that Subversion's revision properties are properly
      encoded, but it rather naively assumes that any custom revision properties which
      might exist in the repository also have UTF-8 values, despite there being no
      such requirement placed on them.
      
      Thus, you can successfully set a binary-valued revision property from the
      command-line:
      
         $ svn propset -r1 --revprop my-custom-prop -F thumbnail.jpg
      
      but when you try to fetch that property from the server via 'svn log
      --with-all-revprops', Subversion chokes.
      
      You can, however, use 'svn propget' to fetch the property.  That codepath takes
      us through a different part of mod_dav_svn -- one which base64-encodes any
      revision properties that aren't valid UTF-8.
      
      mod_dav_svn does only a very naive fuzzy-escaping of XML-unsafe characters, and
      only for log message properties, when responding to 'svn log' requests.
      

      Attachments

        Activity

          People

            cmpilato C. Michael Pilato
            cmpilato C. Michael Pilato
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: