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

[PATCH] compat/mingw.h: Set S_ISUID to prevent a fast-import test failure

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Apr 17, 2012, 18:00 UTC
Message-ID
<4F8DAFA4.2050502@ramsay1.demon.co.uk>

The current t9300-fast-import.sh test number 62 ("L: nested tree copy does not corrupt deltas") was introduced in commit 9a0edb79 ("fast-import: add a test for tree delta base corruption", 15-08-2011). A fix for the demonstrated problem was introduced by commit 8fb3ad76 ("fast-import: prevent producing bad delta", 15-08-2011). However, this fix didn't work on MinGW and so this test has always failed on MinGW.

Part of the solution in commit 8fb3ad76 was to add an NO_DELTA preprocessor constant which was defined as follows:

  +/*
  + * We abuse the setuid bit on directories to mean "do not delta".
  + */
  +#define NO_DELTA S_ISUID
  +
Unfortunately, the S_ISUID constant on MinGW is defined as zero.

In order to fix the problem, we simply alter the definition of S_ISUID in the mingw header file to a more appropriate value. Also, we take the opportunity to similarly define S_ISGID and S_ISVTX.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
 compat/mingw.h |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/compat/mingw.h b/compat/mingw.h
index ef5b150..61a6521 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -22,9 +22,10 @@ typedef int socklen_t;
 #define S_IWOTH 0
 #define S_IXOTH 0
 #define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
-#define S_ISUID 0
-#define S_ISGID 0
-#define S_ISVTX 0
+
+#define S_ISUID 0004000
+#define S_ISGID 0002000
+#define S_ISVTX 0001000
 
 #define WIFEXITED(x) 1
 #define WIFSIGNALED(x) 0
-- 
1.7.10
Next: Johannes Sixt
Message 1 of 4 in “compat/mingw.h: Set S_ISUID to prevent a fast-import test failure”
  1. compat/mingw.h: Set S_ISUID to prevent a fast-import test failureRamsay Jones, Apr 17, 2012
  2. Johannes SixtApr 18, 2012
  3. Junio C HamanoMay 1, 2012
  4. Johannes SixtMay 1, 2012

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.