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

Re: [PATCH v3/GSoC 2/5] path.c: implement xdg_runtime_dir()

From
惠轶群 <huiyiqun@gmail.com>
Date
Mar 28, 2016, 13:37 UTC
Message-ID
<CAKqreuyrENgmB+a7eAHNx9fA4RsQu2PwjLV1wc2z7=kzNTseUw@mail.gmail.com>
In-Reply-To
<xmqqpoui4huo.fsf@gitster.mtv.corp.google.com>
2016-03-26 0:55 GMT+08:00 Junio C Hamano <gitster@pobox.com>:
Show 43 quoted lines
> 惠轶群 <huiyiqun@gmail.com> writes:
>
>>> There's a lot of "what" here that the caller doesn't really care about,
>>> and which may go stale with respect to the implementation over time. Can
>>> we make something more succinct like:
>>>
>>>   /*
>>>    * Return a path suitable for writing run-time files related to git,
>>>    * or NULL if no such path can be established. The resulting string
>>>    * should be freed by the caller.
>>>    */
>>>
>>> ?
>>
>> That's clearer, but if I were the caller, I would worry about the
>> security of the path.
>> How about adding:
>>
>> The security of the path is ensured by file permission.
>
> Is "by file permission" descriptive enough?
>
> To protect /a/b/c/socket, what filesystem entities have the right
> permission bits set?  If the parent directory is writable by an
> attacker, the permission bits on 'socket' itself may not matter as
> the attacker can rename it away and create new one herself, for
> example.
>
>> I will deal with it.
>>
>> I find there are some similar leakage in this file. I'll fix them in
>> another patch.
>>
>> Do you think we need some additional comments for the release of strbuf?
>
> As Documentation/technical/api-strbuf.txt has this, I think we are
> already OK.
>
> `strbuf_release`::
>
>         Release a string buffer and the memory it used. You should not use the
>         string buffer after using this function, unless you initialize it again.
>

Excuse me, but I could not find `Documentation/technical/api-strbuf.txt` in master branch. Do you refer to the header of `strbuf.h`? In which, I learnt how to initialize the strbuf and how to take use of it when I began to use it. If there is also a note about whether I should release it and how do it, such as:

For every strbuf that has been initialized and buffer of it has not been detached with strbuf_detach, you should release the resource by strbuf_release.

It will save me (maybe others) much time to explore the entire method list.
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 33 in “path.c: implement strbuf_mkpath()”
  1. 1/5 path.c: implement strbuf_mkpath()Hui Yiqun, Mar 23, 2016
  2. 2/5 path.c: implement xdg_runtime_dir()Hui Yiqun, Mar 23, 2016
  3. Jeff KingMar 25, 2016
  4. 惠轶群Mar 25, 2016
  5. 惠轶群Mar 25, 2016
  6. Junio C HamanoMar 25, 2016
  7. Jeff KingMar 25, 2016
  8. Junio C HamanoMar 25, 2016
  9. 惠轶群Mar 28, 2016
  10. Junio C HamanoMar 28, 2016
  11. Jeff KingMar 25, 2016
  12. 惠轶群Mar 28, 2016
  13. Junio C HamanoMar 28, 2016
  14. 惠轶群Mar 28, 2016
  15. Junio C HamanoMar 28, 2016
  16. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  17. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  18. Jeff KingMar 28, 2016
  19. 惠轶群Mar 29, 2016
  20. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  21. 惠轶群Mar 28, 2016
  22. Junio C HamanoMar 28, 2016
  23. 惠轶群Mar 29, 2016
  24. 3/5 git-credential-cache: put socket to xdg-compatible pathHui Yiqun, Mar 23, 2016
  25. Jeff KingMar 25, 2016
  26. 惠轶群Mar 25, 2016
  27. Jeff KingMar 25, 2016
  28. 惠轶群Mar 25, 2016
  29. 4/5 test-lib.sh: unset all environment variables defined in xdg base dir spec[1]Hui Yiqun, Mar 23, 2016
  30. Jeff KingMar 25, 2016
  31. 5/5 t0301: test credential-cache support of XDG_RUNTIME_DIRHui Yiqun, Mar 23, 2016
  32. 惠轶群Mar 25, 2016
  33. Jeff KingMar 25, 2016

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.