Re: [PATCH] http-push: trim trailing newline from remote symref
- From
Jeff King <peff@peff.net>
- Date
- Jan 13, 2015, 20:41 UTC
- Message-ID
- <20150113204140.GA16238@peff.net>
- In-Reply-To
- <20150113022857.GA4087@peff.net>
On Mon, Jan 12, 2015 at 09:28:58PM -0500, Jeff King wrote:
Show 16 quoted lines
> When we fetch a symbolic ref file from the remote, we get > the whole string "ref: refs/heads/master\n", recognize it by > skipping past the "ref: ", and store the rest. We should > chomp the trailing newline. > > This bug was introduced in ae021d8 (use skip_prefix to avoid > magic numbers, 2014-06-18), which did not notice that the > length computation fed to xmemdupz was quietly tweaked by 1 > to account for this. > > We can solve it by explicitly trimming the newline, which is > more obvious. Note that we use strbuf_rtrim here, which will > actually cut off any trailing whitespace, not just a single > newline. This is a good thing, though, as it makes our > parsing more liberal (and spaces are not valid in refnames > anyway).
While looking into Kyle's earlier response, I found that there is a semi-duplicate of this function for the http-walker side: http_fetch_ref. It already uses strbuf_rtrim, so I feel doubly good about moving to its use here.
Almost certainly this duplicated functionality could be factored out. I have very little interest in spending time cleaning up the http-push code, though.
-Peff