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

Re: [PATCH 1/3] make_absolute_path: Don't try to copy a string to itself

From
Carlos Martín Nieto <cmn@elego.de>
Date
Mar 15, 2011, 11:59 UTC
Message-ID
<1300190396.19100.31.camel@bee.lab.cmartin.tk>
In-Reply-To
<7vpqptb976.fsf@alter.siamese.dyndns.org>
On lun, 2011-03-14 at 15:58 -0700, Junio C Hamano wrote:
Show 15 quoted lines
> Carlos Martín Nieto <cmn@elego.de> writes:
> 
> >> I don't think it is a bad idea per-se to avoid a copy from the same memory
> >> location into the same memory location, but independent of the necessity
> >> of fixes at the low-level, shouldn't we fix the callers that do not check
> >> if what they have is already absolute?
> >
> > If we'd like the semantics to be "whatever I had, I now know what the
> > absolute path is" then we could make the check in the beginning of the
> > function, to centralise the check. If the semantics should be "I don't
> > have an absolute path, so I need to figure out what it is", then there
> > should be a check before calling make_absolute_path() (the name suggests
> > the second).
> 
> Good thinking, and I think the former semantics would be easier to use.
 I was asking about why we didn't just use realpath, but it seems there
is no portable way of dealing with it (even without counting NFS over
different systems).
 I'm thinking of renaming make_absolute_path to real_path as it's in
fact our implementation of realpath (and actually describes what it
does), without a is_absolute_path check, as a path could be absolute but
point to a link, adding a comment to say that if you don't mind links,
you should use make_nonrelative_path (I'd rename it to absolute_path,
but that may be too close to the old make_absolute_path)
Show 6 quoted lines
> 
> >  There is however the extra functionality the function offers, namely
> > resolving links. It might be good to split it into two functions so each
> > caller can specify what it wants.
> 
> Probably.
 With the changes mentioned earlier, if you want an absolute pathname,
you'd call absolute_path/make_nonrelative_path and if you want to make
sure you have the real path of the target file, you'd use real_path just
as you'd use realpath on a sane system, with
   cmn
Previous: Junio C HamanoNext: Carlos Martín Nieto
Message 7 of 48 in “Fix some errors reported by valgrind”
  1. 0/3 Fix some errors reported by valgrindCarlos Martín Nieto, Mar 14, 2011
  2. 1/3 make_absolute_path: Don't try to copy a string to itselfCarlos Martín Nieto, Mar 14, 2011
  3. Jeff KingMar 14, 2011
  4. Junio C HamanoMar 14, 2011
  5. Carlos Martín NietoMar 14, 2011
  6. Junio C HamanoMar 14, 2011
  7. Carlos Martín NietoMar 15, 2011
  8. Carlos Martín NietoMar 15, 2011
  9. Junio C HamanoMar 15, 2011
  10. Carlos Martín NietoMar 15, 2011
  11. Nguyen Thai Ngoc DuyMar 16, 2011
  12. Carlos Martín NietoMar 16, 2011
  13. Nguyen Thai Ngoc DuyMar 16, 2011
  14. Nguyen Thai Ngoc DuyMar 16, 2011
  15. Carlos Martín NietoMar 16, 2011
  16. 2/3 setup_path(): Free temporary bufferCarlos Martín Nieto, Mar 14, 2011
  17. Jeff KingMar 14, 2011
  18. Carlos Martín NietoMar 14, 2011
  19. system_path: use a static bufferCarlos Martín Nieto, Mar 16, 2011
  20. Erik Faye-LundMar 16, 2011
  21. Carlos Martín NietoMar 16, 2011
  22. system_path: use a static bufferCarlos Martín Nieto, Mar 16, 2011
  23. Junio C HamanoMar 16, 2011
  24. system_path: use a static bufferCarlos Martín Nieto, Mar 17, 2011
  25. system_path: use a static bufferCarlos Martín Nieto, Mar 17, 2011
  26. Junio C HamanoMar 18, 2011
  27. Carlos Martín NietoMar 21, 2011
  28. Jeff KingMar 21, 2011
  29. Carlos Martín NietoMar 21, 2011
  30. Jeff KingMar 21, 2011
  31. Carlos Martín NietoMar 21, 2011
  32. Nguyen Thai Ngoc DuyMar 18, 2011
  33. PATH_MAX (Re: [PATCH] system_path: use a static buffer)Jonathan Nieder, Mar 18, 2011
  34. Nguyen Thai Ngoc DuyMar 18, 2011
  35. Carlos Martín NietoMar 21, 2011
  36. Lasse MakholmMar 21, 2011
  37. Nguyen Thai Ngoc DuyMar 21, 2011
  38. 1/2 wrapper.c: add xgetcwd()Nguyễn Thái Ngọc Duy, Mar 18, 2011
  39. 2/2 setup_gently: use xgetcwd()Nguyễn Thái Ngọc Duy, Mar 18, 2011
  40. Junio C HamanoMar 14, 2011
  41. Carlos Martín NietoMar 14, 2011
  42. Jeff KingMar 15, 2011
  43. t/README: Add a note about running commands under valgrindCarlos Martín Nieto, Mar 15, 2011
  44. Junio C HamanoMar 15, 2011
  45. Carlos Martín NietoMar 15, 2011
  46. 3/3 clone: Free a few pathsCarlos Martín Nieto, Mar 14, 2011
  47. Jonathan NiederMar 14, 2011
  48. Junio C HamanoMar 18, 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.