Re: [PATCH] compat/mingw.h: Set S_ISUID to prevent a fast-import test failure
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Apr 18, 2012, 20:22 UTC
- Message-ID
- <4F8F2268.8020803@kdbg.org>
- In-Reply-To
- <4F8DAFA4.2050502@ramsay1.demon.co.uk>
Am 17.04.2012 20:00, schrieb Ramsay Jones:
Show 48 quoted lines
>
> 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) 0I've submitted a similar patch, but it was suggested to solve the inherent problem in a cleaner way, but no patch came forward.
-- Hannes
See http://thread.gmane.org/gmane.comp.version-control.git/181817