- From c6f1558114e43119f830b46c291f35bd34823efb Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 11 Dec 2024 09:37:55 +0100
- Subject: [PATCH 1/4] daemon: Misplaced NULL-ptr check
- |cygwin_getent_passwd()|/|cygwin_getent_group()|
- Misplaced NULL-ptr check |cygwin_getent_passwd()| and
- |cygwin_getent_group()| can cause crashes in idmapper code.
- Reported-by: Martin Wege <martin.l.wege@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- daemon/idmap_cygwin.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
- diff --git a/daemon/idmap_cygwin.c b/daemon/idmap_cygwin.c
- index 868bdee..d7b4fd4 100644
- --- a/daemon/idmap_cygwin.c
- +++ b/daemon/idmap_cygwin.c
- @@ -146,6 +146,9 @@ int cygwin_getent_passwd(const char *name, char *res_loginname, uid_t *res_uid,
- }
- }
- + if (!localaccountname)
- + goto fail;
- +
- /*
- * Cygwin /usr/bin/getent passwd can return "Unknown+User"
- * in cases when an SID is valid but does not match an account.
- @@ -158,9 +161,6 @@ int cygwin_getent_passwd(const char *name, char *res_loginname, uid_t *res_uid,
- goto fail;
- }
- - if (!localaccountname)
- - goto fail;
- -
- if (res_loginname)
- (void)strcpy_s(res_loginname, VAL_LEN, localaccountname);
- *res_uid = uid;
- @@ -286,6 +286,9 @@ int cygwin_getent_group(const char* name, char* res_group_name, gid_t* res_gid)
- }
- }
- + if (!localgroupname)
- + goto fail;
- +
- /*
- * Cygwin /usr/bin/getent group can return "Unknown+Group"
- * in cases when an SID is valid but does not match an account.
- @@ -298,9 +301,6 @@ int cygwin_getent_group(const char* name, char* res_group_name, gid_t* res_gid)
- goto fail;
- }
- - if (!localgroupname)
- - goto fail;
- -
- if (res_group_name)
- (void)strcpy_s(res_group_name, VAL_LEN, localgroupname);
- *res_gid = gid;
- --
- 2.45.1
- From 9c35c7d82e4a49db7df3e4c532ac2335b7f9b97c Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 11 Dec 2024 10:22:53 +0100
- Subject: [PATCH 2/4] daemon: Add |EASSERT()| to check status code of
- |open_delegation_return()|
- Add |EASSERT()| to check status code of |open_delegation_return()|
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- daemon/nfs41_ops.c | 2 ++
- 1 file changed, 2 insertions(+)
- diff --git a/daemon/nfs41_ops.c b/daemon/nfs41_ops.c
- index 5a41d99..465be8f 100644
- --- a/daemon/nfs41_ops.c
- +++ b/daemon/nfs41_ops.c
- @@ -378,6 +378,8 @@ static void open_delegation_return(
- /* clear the delegation type returned by nfs41_open() */
- delegation->type = OPEN_DELEGATE_NONE;
- +
- + EASSERT(status == 0);
- }
- static void open_update_cache(
- --
- 2.45.1
- From 5373974589b57ff8fba4993d0e602443d4fba032 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 11 Dec 2024 12:12:24 +0100
- Subject: [PATCH 3/4] daemon: Fix |fprintf()| format warnings reported by clang
- Fix |fprintf()| format warnings reported by clang.
- Reported-by: Dan Shelton <dan.f.shelton@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- daemon/daemon_debug.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
- diff --git a/daemon/daemon_debug.c b/daemon/daemon_debug.c
- index 21b29e6..22007ac 100644
- --- a/daemon/daemon_debug.c
- +++ b/daemon/daemon_debug.c
- @@ -785,7 +785,7 @@ void print_condwait_status(int level, int status)
- case WAIT_ABANDONED: fprintf(dlog_file, "WAIT_ABANDONED\n"); break;
- case WAIT_OBJECT_0: fprintf(dlog_file, "WAIT_OBJECT_0\n"); break;
- case WAIT_TIMEOUT: fprintf(dlog_file, "WAIT_TIMEOUT\n"); break;
- - case WAIT_FAILED: fprintf(dlog_file, "WAIT_FAILED %d\n", GetLastError());
- + case WAIT_FAILED: fprintf(dlog_file, "WAIT_FAILED %d\n", (int)GetLastError());
- default: fprintf(dlog_file, "unknown status =%d\n", status);
- }
- }
- @@ -793,7 +793,7 @@ void print_condwait_status(int level, int status)
- void print_sr_status_flags(int level, int flags)
- {
- if (level > g_debug_level) return;
- - fprintf(dlog_file, "%04x: sr_status_flags: ", GetCurrentThreadId());
- + fprintf(dlog_file, "%04x: sr_status_flags: ", (int)GetCurrentThreadId());
- if (flags & SEQ4_STATUS_CB_PATH_DOWN)
- fprintf(dlog_file, "SEQ4_STATUS_CB_PATH_DOWN ");
- if (flags & SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING)
- --
- 2.45.1
- From f1342838d936a94e35851cb25f2ca6b013abb247 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 11 Dec 2024 13:40:06 +0100
- Subject: [PATCH 4/4] cygwin: Add 32bit-only bintarball targets (build32,
- bintarball32)
- Add 32bit-only bintarball targets (build32, bintarball32)
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- cygwin/Makefile | 33 +++++++++++++++++++++++++++++++--
- 1 file changed, 31 insertions(+), 2 deletions(-)
- diff --git a/cygwin/Makefile b/cygwin/Makefile
- index 5993c1a..a239eb1 100644
- --- a/cygwin/Makefile
- +++ b/cygwin/Makefile
- @@ -69,6 +69,14 @@ build_testutils:
- build: build_32bit_release build_32bit_debug build_64bit_release build_64bit_debug build_arm_64bit_debug build_testutils
- sync
- +# 32bit kernel only build, for Windows <= 10/32bit
- +# - BUG: ARM64 build not working yet
- +build32: \
- + build_32bit_release \
- + build_32bit_debug \
- + build_testutils
- + sync
- +
- # 64bit kernel only build, for Visual Studio 2022 build
- # - VS2022 no longe supports building 32bit kernel modules
- # - we need 32bit nfs_mount.exe for testing
- @@ -140,7 +148,7 @@ installdest: installdest_util installdest32 .WAIT installdest64
- bintarball: installdest
- set -o errexit ; set -o xtrace ; \
- - base_filename="msnfs41client_cygwin_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
- + base_filename="msnfs41client_cygwin_64bit32bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
- ( \
- cd "$(DESTDIR)" && \
- tar -cvf - \
- @@ -160,9 +168,30 @@ bintarball: installdest
- ls -l "$(DESTDIR)/$${base_filename}.readme"
- sync
- +bintarball32: installdest32
- + set -o errexit ; set -o xtrace ; \
- + base_filename="msnfs41client_cygwin_32bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
- + ( \
- + cd "$(DESTDIR)" && \
- + tar -cvf - \
- + --owner=SYSTEM:18 \
- + --group=SYSTEM:18 \
- + cygdrive/c/cygwin \
- + | \
- + bzip2 -9 >"$${base_filename}.tar.bz2" ; \
- + archive_sha256hash="$$(openssl sha256 -r "$${base_filename}.tar.bz2" | while read a dummy ; do printf "%s\n" "$$a" ; done)" ; \
- + sed -E <"../cygwin/README.bintarball.txt" \
- + -e "s/\\$$\{bintarball.base_filename\}/$${base_filename}/g" \
- + -e "s/\\$$\{bintarball.archive_sha256hash\}/$${archive_sha256hash}/g" >"$${base_filename}.readme" \
- + ) ; \
- + printf "\n#\n# 32bit-only tarball is ready now\n#\n" ; \
- + ls -l "$(DESTDIR)/$${base_filename}.tar.bz2" ; \
- + ls -l "$(DESTDIR)/$${base_filename}.readme"
- + sync
- +
- bintarball64: installdest64
- set -o errexit ; set -o xtrace ; \
- - base_filename="msnfs41client_cygwin_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
- + base_filename="msnfs41client_cygwin_64bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
- ( \
- cd "$(DESTDIR)" && \
- tar -cvf - \
- --
- 2.45.1
msnfs41client: Patches for 32bit-only build+cleanup+misc, 2024-12-11
Posted by Anonymous on Wed 11th Dec 2024 12:47
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.