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

From: "Rose via GitGitGadget" <[email-masked]>
Date: Sun, 08 Jan 2023 14:46:12 +0000

From: Seija Kijin <[email-masked]>

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

Signed-off-by: Seija Kijin <[email-masked]>
---
    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 <[email-masked]>

 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