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

Re: [PATCH 2/2] config: use chmod() instead of fchmod()

From
Johannes Sixt <j6t@kdbg.org>
Date
Jul 16, 2014, 05:33 UTC
Message-ID
<53C60E9C.3020604@kdbg.org>
In-Reply-To
<53C5B126.6020404@gmail.com>
Am 16.07.2014 00:54, schrieb Karsten Blees:
Show 37 quoted lines
> There is no fchmod() on native Windows platforms (MinGW and MSVC), and the
> equivalent Win32 API (SetFileInformationByHandle) requires Windows Vista.
> 
> Use chmod() instead.
> 
> Signed-off-by: Karsten Blees <blees@dcon.de>
> ---
>  config.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/config.c b/config.c
> index ba882a1..9767c4b 100644
> --- a/config.c
> +++ b/config.c
> @@ -1636,8 +1636,8 @@ int git_config_set_multivar_in_file(const char *config_filename,
>  			MAP_PRIVATE, in_fd, 0);
>  		close(in_fd);
>  
> -		if (fchmod(fd, st.st_mode & 07777) < 0) {
> -			error("fchmod on %s failed: %s",
> +		if (chmod(lock->filename, st.st_mode & 07777) < 0) {
> +			error("chmod on %s failed: %s",
>  				lock->filename, strerror(errno));
>  			ret = CONFIG_NO_WRITE;
>  			goto out_free;
> @@ -1815,8 +1815,8 @@ int git_config_rename_section_in_file(const char *config_filename,
>  
>  	fstat(fileno(config_file), &st);
>  
> -	if (fchmod(out_fd, st.st_mode & 07777) < 0) {
> -		ret = error("fchmod on %s failed: %s",
> +	if (chmod(lock->filename, st.st_mode & 07777) < 0) {
> +		ret = error("chmod on %s failed: %s",
>  				lock->filename, strerror(errno));
>  		goto out;
>  	}
> 

I assume you tested this patch on Windows. I am mildly surprised that (on Windows) chmod() works on a file that is still open.

-- Hannes
-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Karsten BleesNext: Karsten Blees
Message 17 of 46 in “Topic sk/mingw-unicode-spawn-args breaks tests”
  1. Johannes SixtJul 10, 2014
  2. Karsten BleesJul 11, 2014
  3. Stepan KasalJul 12, 2014
  4. Johannes SchindelinJul 15, 2014
  5. 0/3 fix test suite with mingw-unicode patchesStepan Kasal, Jul 15, 2014
  6. 1/3 Win32: Unicode file name support (except dirent)Stepan Kasal, Jul 15, 2014
  7. 2/3 Win32: Unicode file name support (dirent)Stepan Kasal, Jul 15, 2014
  8. 3/3 tests: do not pass iso8859-1 encoded parameterStepan Kasal, Jul 15, 2014
  9. Stepan KasalJul 15, 2014
  10. Junio C HamanoJul 15, 2014
  11. Karsten BleesJul 15, 2014
  12. 1/2 MinGW: fix compile error due to missing ELOOPKarsten Blees, Jul 15, 2014
  13. Jonathan NiederJul 15, 2014
  14. Karsten BleesJul 15, 2014
  15. Junio C HamanoJul 16, 2014
  16. 2/2 config: use chmod() instead of fchmod()Karsten Blees, Jul 15, 2014
  17. Johannes SixtJul 16, 2014
  18. Karsten BleesJul 16, 2014
  19. Junio C HamanoJul 16, 2014
  20. Karsten BleesJul 17, 2014
  21. Stepan KasalJul 16, 2014
  22. Thomas BraunJul 16, 2014
  23. 0/6 mingw test fixesStepan Kasal, Jul 17, 2014
  24. 1/6 MinGW: Skip test redirecting to fd 4Stepan Kasal, Jul 17, 2014
  25. Junio C HamanoJul 17, 2014
  26. Johannes SchindelinJul 17, 2014
  27. Karsten BleesJul 17, 2014
  28. Junio C HamanoJul 17, 2014
  29. 2/6 Disable t0110's high-bit test on WindowsStepan Kasal, Jul 17, 2014
  30. Karsten BleesJul 17, 2014
  31. Junio C HamanoJul 18, 2014
  32. t0110/MinGW: skip tests that pass arbitrary bytes on the command lineKarsten Blees, Jul 19, 2014
  33. Junio C HamanoJul 21, 2014
  34. 3/6 MinGW: disable legacy encoding testsStepan Kasal, Jul 17, 2014
  35. 4/6 t4210: skip command-line encoding tests on mingwStepan Kasal, Jul 17, 2014
  36. Erik Faye-LundJul 18, 2014
  37. Junio C HamanoJul 21, 2014
  38. Johannes SchindelinJul 21, 2014
  39. Johannes SixtJul 21, 2014
  40. Junio C HamanoJul 21, 2014
  41. Junio C HamanoJul 21, 2014
  42. Junio C HamanoJul 21, 2014
  43. 2/2 test prerequisites: enumerate with commasJunio C Hamano, Jul 21, 2014
  44. 5/6 t9902: mingw-specific fix for gitfile link filesStepan Kasal, Jul 17, 2014
  45. Junio C HamanoJul 17, 2014
  46. 6/6 t800[12]: work around MSys limitationStepan Kasal, Jul 17, 2014

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.