git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC 04/13] add_ref(): move the call of check_refname_format() to callers

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Oct 19, 2011, 21:59 UTC
Message-ID
<4E9F4837.5070108@alum.mit.edu>
In-Reply-To
<7vsjmobqim.fsf@alter.siamese.dyndns.org>
On 10/19/2011 11:49 PM, Junio C Hamano wrote:
Show 12 quoted lines
> mhagger@alum.mit.edu writes:
>> I'm still not clear on how extra_refs are used.  Are they generated
>> from local refs or are they generated from remote refs?  If the
>> latter, then it is probably irresponsible not to do *some* sanity
>> checking in add_extra_ref() to prevent any chance of refnames like
>> "../../../etc/passwd".
> 
> No, add_extra_ref() already tells us what their values are, these are
> never used to actually read from filesystem. Their refname field has
> almost no value other than for debugging and we probably shouldn't even
> insist on uniqueness among extra refs or for that matter collision with
> the real refs. [...]

Thanks for the explanation. I'm inspired to separate them a little bit more from "real" refs because they are such a special case. For example, maybe it would make sense to add a function for_each_extra_ref() to avoid having to mix them with real refs in the iteration. OTOH not important AFAICS.

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Previous: Junio C HamanoNext: mhagger@alum.mit.edu
Message 7 of 17 in “[RFC 00/13] Checking full vs. partial refnames”
  1. mhagger@alum.mit.eduOct 19, 2011
  2. 01/13 check_refname_component(): iterate via index rather than via pointermhagger@alum.mit.edu, Oct 19, 2011
  3. 02/13 parse_refname_prefix(): new functionmhagger@alum.mit.edu, Oct 19, 2011
  4. 03/13 Teach check_refname_format() to check full refnamesmhagger@alum.mit.edu, Oct 19, 2011
  5. 04/13 add_ref(): move the call of check_refname_format() to callersmhagger@alum.mit.edu, Oct 19, 2011
  6. Junio C HamanoOct 19, 2011
  7. Michael HaggertyOct 19, 2011
  8. 05/13 receive-pack::update(): use check_refname_format(..., REFNAME_FULL)mhagger@alum.mit.edu, Oct 19, 2011
  9. 06/13 strbuf_check_branch_ref(): use check_refname_format(..., REFNAME_FULL)mhagger@alum.mit.edu, Oct 19, 2011
  10. 07/13 one_local_ref(): use check_refname_format(..., REFNAME_FULL)mhagger@alum.mit.edu, Oct 19, 2011
  11. 08/13 expand_namespace(): the refname is full, so use REFNAME_FULL optionmhagger@alum.mit.edu, Oct 19, 2011
  12. 09/13 new_branch(): verify that new branch name is a valid full refnamemhagger@alum.mit.edu, Oct 19, 2011
  13. Junio C HamanoOct 19, 2011
  14. 10/13 strbuf_check_tag_ref(): the refname is full, so use REFNAME_FULL optionmhagger@alum.mit.edu, Oct 19, 2011
  15. 11/13 replace_object(): the refname is full, so use REFNAME_FULL optionmhagger@alum.mit.edu, Oct 19, 2011
  16. 12/13 resolve_ref: use check_refname_format(..., REFNAME_FULL)mhagger@alum.mit.edu, Oct 19, 2011
  17. 13/13 filter_refs(): the refname is full, so use REFNAME_FULL optionmhagger@alum.mit.edu, Oct 19, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.