# [PATCH] mingw: check that the file attributes are valid

4 messages from 2022-12-22 to 2024-12-18. Participants: Rose via GitGitGadget, AreaZR via GitGitGadget.
Thread: https://gitlist.dev/t/58995

## Rose via GitGitGadget, 2022-12-22 20:22

Subject: [PATCH] mingw: check that the file attributes are valid
Message-ID: <pull.1413.git.git.1671740551466.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1413.git.git.1671740551466.gitgitgadget%40gmail.com

```
From: Seija Kijin <doremylover123@gmail.com>

If the attributes are invalid, return an error.

Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
    mingw: check that the file attributes are valid

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1413%2FAtariDreams%2Fset-hidden-flag-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1413/AtariDreams/set-hidden-flag-v1
Pull-Request: https://github.com/git/git/pull/1413

 compat/mingw.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compat/mingw.c b/compat/mingw.c
index d614f156df1..71a039cdd7c 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -435,6 +435,11 @@ static inline int needs_hiding(const char *path)
 static int set_hidden_flag(const wchar_t *path, int set)
 {
 	DWORD original = GetFileAttributesW(path), modified;
+	if (original == INVALID_FILE_ATTRIBUTES) {
+		errno = err_win_to_posix(GetLastError());
+		return -1;
+	}
+
 	if (set)
 		modified = original | FILE_ATTRIBUTE_HIDDEN;
 	else

base-commit: 7c2ef319c52c4997256f5807564523dfd4acdfc7
-- 
gitgitgadget

```

## Rose via GitGitGadget, 2023-01-08 14:46

Subject: [PATCH v2] mingw: check that the file attributes are valid
Message-ID: <pull.1413.v2.git.git.1673189172832.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1413.v2.git.git.1673189172832.gitgitgadget%40gmail.com
In-Reply-To: <pull.1413.git.git.1671740551466.gitgitgadget@gmail.com>

```
From: Seija Kijin <doremylover123@gmail.com>

If the attributes are invalid, return -1
to indicate an error.

Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
    mingw: check that the file attributes are valid

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1413%2FAtariDreams%2Fset-hidden-flag-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1413/AtariDreams/set-hidden-flag-v2
Pull-Request: https://github.com/git/git/pull/1413

Range-diff vs v1:

 1:  d2992745f3f ! 1:  f1cc7d9a98b mingw: check that the file attributes are valid
     @@ Metadata
       ## Commit message ##
          mingw: check that the file attributes are valid
      
     -    If the attributes are invalid, return an error.
     +    If the attributes are invalid, return -1
     +    to indicate an error.
      
          Signed-off-by: Seija Kijin <doremylover123@gmail.com>
      


 compat/mingw.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compat/mingw.c b/compat/mingw.c
index af397e68a1d..01bafa01e92 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -435,6 +435,11 @@ static inline int needs_hiding(const char *path)
 static int set_hidden_flag(const wchar_t *path, int set)
 {
 	DWORD original = GetFileAttributesW(path), modified;
+	if (original == INVALID_FILE_ATTRIBUTES) {
+		errno = err_win_to_posix(GetLastError());
+		return -1;
+	}
+
 	if (set)
 		modified = original | FILE_ATTRIBUTE_HIDDEN;
 	else

base-commit: a38d39a4c50d1275833aba54c4dbdfce9e2e9ca1
-- 
gitgitgadget

```

## Rose via GitGitGadget, 2023-01-08 14:49

Subject: [PATCH v3] mingw: check that the file attributes are valid before modifying them
Message-ID: <pull.1413.v3.git.git.1673189354738.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1413.v3.git.git.1673189354738.gitgitgadget%40gmail.com
In-Reply-To: <pull.1413.v2.git.git.1673189172832.gitgitgadget@gmail.com>

```
From: Seija Kijin <doremylover123@gmail.com>

If the attributes are invalid, return -1
to indicate an error.

Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
    mingw: check that the file attributes are valid before modifying them

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1413%2FAtariDreams%2Fset-hidden-flag-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1413/AtariDreams/set-hidden-flag-v3
Pull-Request: https://github.com/git/git/pull/1413

Range-diff vs v2:

 1:  f1cc7d9a98b ! 1:  0cbe8bce617 mingw: check that the file attributes are valid
     @@ Metadata
      Author: Seija Kijin <doremylover123@gmail.com>
      
       ## Commit message ##
     -    mingw: check that the file attributes are valid
     +    mingw: check that the file attributes are valid before modifying them
      
          If the attributes are invalid, return -1
          to indicate an error.


 compat/mingw.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compat/mingw.c b/compat/mingw.c
index af397e68a1d..01bafa01e92 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -435,6 +435,11 @@ static inline int needs_hiding(const char *path)
 static int set_hidden_flag(const wchar_t *path, int set)
 {
 	DWORD original = GetFileAttributesW(path), modified;
+	if (original == INVALID_FILE_ATTRIBUTES) {
+		errno = err_win_to_posix(GetLastError());
+		return -1;
+	}
+
 	if (set)
 		modified = original | FILE_ATTRIBUTE_HIDDEN;
 	else

base-commit: a38d39a4c50d1275833aba54c4dbdfce9e2e9ca1
-- 
gitgitgadget

```

## AreaZR via GitGitGadget, 2024-12-18 00:37

Subject: [PATCH v4] mingw: check that the file attributes are valid before modifying them
Message-ID: <pull.1413.v4.git.git.1734482229018.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1413.v4.git.git.1734482229018.gitgitgadget%40gmail.com
In-Reply-To: <pull.1413.v3.git.git.1673189354738.gitgitgadget@gmail.com>

```
From: Seija Kijin <doremylover123@gmail.com>

If the attributes are invalid, return -1
to indicate an error.

Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
    mingw: check that the file attributes are valid before modifying them
    
    Thanks for taking the time to contribute to Git! Please be advised that
    the Git community does not use github.com for their contributions.
    Instead, we use a mailing list (git@vger.kernel.org) for code
    submissions, code reviews, and bug reports. Nevertheless, you can use
    GitGitGadget (https://gitgitgadget.github.io/) to conveniently send your
    Pull Requests commits to our mailing list.
    
    Please read the "guidelines for contributing" linked above!

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1413%2FAreaZR%2Fset-hidden-flag-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1413/AreaZR/set-hidden-flag-v4
Pull-Request: https://github.com/git/git/pull/1413

Range-diff vs v3:

 1:  0cbe8bce617 = 1:  0fed7ade880 mingw: check that the file attributes are valid before modifying them


 compat/mingw.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compat/mingw.c b/compat/mingw.c
index 63f36c893bf..7f52a4362fe 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -446,6 +446,11 @@ static inline int needs_hiding(const char *path)
 static int set_hidden_flag(const wchar_t *path, int set)
 {
 	DWORD original = GetFileAttributesW(path), modified;
+	if (original == INVALID_FILE_ATTRIBUTES) {
+		errno = err_win_to_posix(GetLastError());
+		return -1;
+	}
+
 	if (set)
 		modified = original | FILE_ATTRIBUTE_HIDDEN;
 	else

base-commit: 063bcebf0c917140ca0e705cbe0fdea127e90086
-- 
gitgitgadget

```
