Skip to content
  • Jeff King's avatar
    remote-curl: unquote incoming push-options · 90dce21e
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The transport-helper protocol c-style quotes the value of
    any options passed to the helper via the "option <key> <value>"
    directive. However, remote-curl doesn't actually unquote the
    push-option values, meaning that we will send the quoted
    version to the other side (whereas git-over-ssh would send
    the raw value).
    
    The pack-protocol.txt documentation defines the push-options
    as a series of VCHARs, which excludes most characters that
    would need quoting. But:
    
      1. You can still see the bug with a valid push-option that
         starts with a double-quote (since that triggers
         quoting).
    
      2. We do currently handle any non-NUL characters correctly
         in git-over-ssh. So even though the spec does not say
         that we need to handle most quoted characters, it's
         nice if our behavior is consistent between protocols.
    
    There are two new tests: the "direct" one shows that this
    already works in the non-http case, and the http one covers
    this bugfix.
    
    Reported-by: default avatarJon Simons <jon@jonsimons.org>
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    90dce21e