pastebin - collaborative debugging tool
rovema.kpaste.net RSS


msnfs41client: Patches for 32bit-only build+cleanup+misc, 2024-12-11
Posted by Anonymous on Wed 11th Dec 2024 12:47
raw | new post

  1. From c6f1558114e43119f830b46c291f35bd34823efb Mon Sep 17 00:00:00 2001
  2. From: Roland Mainz <roland.mainz@nrubsig.org>
  3. Date: Wed, 11 Dec 2024 09:37:55 +0100
  4. Subject: [PATCH 1/4] daemon: Misplaced NULL-ptr check
  5.  |cygwin_getent_passwd()|/|cygwin_getent_group()|
  6.  
  7. Misplaced NULL-ptr check |cygwin_getent_passwd()| and
  8. |cygwin_getent_group()| can cause crashes in idmapper code.
  9.  
  10. Reported-by: Martin Wege <martin.l.wege@gmail.com>
  11. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  12. ---
  13. daemon/idmap_cygwin.c | 12 ++++++------
  14.  1 file changed, 6 insertions(+), 6 deletions(-)
  15.  
  16. diff --git a/daemon/idmap_cygwin.c b/daemon/idmap_cygwin.c
  17. index 868bdee..d7b4fd4 100644
  18. --- a/daemon/idmap_cygwin.c
  19. +++ b/daemon/idmap_cygwin.c
  20. @@ -146,6 +146,9 @@ int cygwin_getent_passwd(const char *name, char *res_loginname, uid_t *res_uid,
  21.          }
  22.      }
  23.  
  24. +    if (!localaccountname)
  25. +        goto fail;
  26. +
  27.      /*
  28.       * Cygwin /usr/bin/getent passwd can return "Unknown+User"
  29.       * in cases when an SID is valid but does not match an account.
  30. @@ -158,9 +161,6 @@ int cygwin_getent_passwd(const char *name, char *res_loginname, uid_t *res_uid,
  31.          goto fail;
  32.      }
  33.  
  34. -    if (!localaccountname)
  35. -        goto fail;
  36. -
  37.      if (res_loginname)
  38.          (void)strcpy_s(res_loginname, VAL_LEN, localaccountname);
  39.      *res_uid = uid;
  40. @@ -286,6 +286,9 @@ int cygwin_getent_group(const char* name, char* res_group_name, gid_t* res_gid)
  41.          }
  42.      }
  43.  
  44. +    if (!localgroupname)
  45. +        goto fail;
  46. +
  47.      /*
  48.       * Cygwin /usr/bin/getent group can return "Unknown+Group"
  49.       * in cases when an SID is valid but does not match an account.
  50. @@ -298,9 +301,6 @@ int cygwin_getent_group(const char* name, char* res_group_name, gid_t* res_gid)
  51.          goto fail;
  52.      }
  53.  
  54. -    if (!localgroupname)
  55. -        goto fail;
  56. -
  57.      if (res_group_name)
  58.          (void)strcpy_s(res_group_name, VAL_LEN, localgroupname);
  59.      *res_gid = gid;
  60. --
  61. 2.45.1
  62.  
  63. From 9c35c7d82e4a49db7df3e4c532ac2335b7f9b97c Mon Sep 17 00:00:00 2001
  64. From: Roland Mainz <roland.mainz@nrubsig.org>
  65. Date: Wed, 11 Dec 2024 10:22:53 +0100
  66. Subject: [PATCH 2/4] daemon: Add |EASSERT()| to check status code of
  67.  |open_delegation_return()|
  68.  
  69. Add |EASSERT()| to check status code of |open_delegation_return()|
  70.  
  71. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  72. ---
  73. daemon/nfs41_ops.c | 2 ++
  74.  1 file changed, 2 insertions(+)
  75.  
  76. diff --git a/daemon/nfs41_ops.c b/daemon/nfs41_ops.c
  77. index 5a41d99..465be8f 100644
  78. --- a/daemon/nfs41_ops.c
  79. +++ b/daemon/nfs41_ops.c
  80. @@ -378,6 +378,8 @@ static void open_delegation_return(
  81.  
  82.      /* clear the delegation type returned by nfs41_open() */
  83.      delegation->type = OPEN_DELEGATE_NONE;
  84. +
  85. +    EASSERT(status == 0);
  86.  }
  87.  
  88.  static void open_update_cache(
  89. --
  90. 2.45.1
  91.  
  92. From 5373974589b57ff8fba4993d0e602443d4fba032 Mon Sep 17 00:00:00 2001
  93. From: Roland Mainz <roland.mainz@nrubsig.org>
  94. Date: Wed, 11 Dec 2024 12:12:24 +0100
  95. Subject: [PATCH 3/4] daemon: Fix |fprintf()| format warnings reported by clang
  96.  
  97. Fix |fprintf()| format warnings reported by clang.
  98.  
  99. Reported-by: Dan Shelton <dan.f.shelton@gmail.com>
  100. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  101. ---
  102. daemon/daemon_debug.c | 4 ++--
  103.  1 file changed, 2 insertions(+), 2 deletions(-)
  104.  
  105. diff --git a/daemon/daemon_debug.c b/daemon/daemon_debug.c
  106. index 21b29e6..22007ac 100644
  107. --- a/daemon/daemon_debug.c
  108. +++ b/daemon/daemon_debug.c
  109. @@ -785,7 +785,7 @@ void print_condwait_status(int level, int status)
  110.          case WAIT_ABANDONED: fprintf(dlog_file, "WAIT_ABANDONED\n"); break;
  111.          case WAIT_OBJECT_0: fprintf(dlog_file, "WAIT_OBJECT_0\n"); break;
  112.          case WAIT_TIMEOUT: fprintf(dlog_file, "WAIT_TIMEOUT\n"); break;
  113. -        case WAIT_FAILED: fprintf(dlog_file, "WAIT_FAILED %d\n", GetLastError());
  114. +        case WAIT_FAILED: fprintf(dlog_file, "WAIT_FAILED %d\n", (int)GetLastError());
  115.          default: fprintf(dlog_file, "unknown status =%d\n", status);
  116.      }
  117.  }
  118. @@ -793,7 +793,7 @@ void print_condwait_status(int level, int status)
  119.  void print_sr_status_flags(int level, int flags)
  120.  {
  121.      if (level > g_debug_level) return;
  122. -    fprintf(dlog_file, "%04x: sr_status_flags: ", GetCurrentThreadId());
  123. +    fprintf(dlog_file, "%04x: sr_status_flags: ", (int)GetCurrentThreadId());
  124.      if (flags & SEQ4_STATUS_CB_PATH_DOWN)
  125.          fprintf(dlog_file, "SEQ4_STATUS_CB_PATH_DOWN ");
  126.      if (flags & SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING)
  127. --
  128. 2.45.1
  129.  
  130. From f1342838d936a94e35851cb25f2ca6b013abb247 Mon Sep 17 00:00:00 2001
  131. From: Roland Mainz <roland.mainz@nrubsig.org>
  132. Date: Wed, 11 Dec 2024 13:40:06 +0100
  133. Subject: [PATCH 4/4] cygwin: Add 32bit-only bintarball targets (build32,
  134.  bintarball32)
  135.  
  136. Add 32bit-only bintarball targets (build32, bintarball32)
  137.  
  138. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  139. ---
  140. cygwin/Makefile | 33 +++++++++++++++++++++++++++++++--
  141.  1 file changed, 31 insertions(+), 2 deletions(-)
  142.  
  143. diff --git a/cygwin/Makefile b/cygwin/Makefile
  144. index 5993c1a..a239eb1 100644
  145. --- a/cygwin/Makefile
  146. +++ b/cygwin/Makefile
  147. @@ -69,6 +69,14 @@ build_testutils:
  148.  build: build_32bit_release build_32bit_debug build_64bit_release build_64bit_debug build_arm_64bit_debug build_testutils
  149.         sync
  150.  
  151. +# 32bit kernel only build, for Windows <= 10/32bit
  152. +# - BUG: ARM64 build not working yet
  153. +build32: \
  154. +       build_32bit_release \
  155. +       build_32bit_debug \
  156. +       build_testutils
  157. +       sync
  158. +
  159.  # 64bit kernel only build, for Visual Studio 2022 build
  160.  # - VS2022 no longe supports building 32bit kernel modules
  161.  # - we need 32bit nfs_mount.exe for testing
  162. @@ -140,7 +148,7 @@ installdest: installdest_util installdest32 .WAIT installdest64
  163.  
  164.  bintarball: installdest
  165.         set -o errexit ; set -o xtrace ; \
  166. -       base_filename="msnfs41client_cygwin_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
  167. +       base_filename="msnfs41client_cygwin_64bit32bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
  168.         ( \
  169.         cd "$(DESTDIR)" && \
  170.         tar -cvf - \
  171. @@ -160,9 +168,30 @@ bintarball: installdest
  172.         ls -l "$(DESTDIR)/$${base_filename}.readme"
  173.         sync
  174.  
  175. +bintarball32: installdest32
  176. +       set -o errexit ; set -o xtrace ; \
  177. +       base_filename="msnfs41client_cygwin_32bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
  178. +       ( \
  179. +       cd "$(DESTDIR)" && \
  180. +       tar -cvf - \
  181. +               --owner=SYSTEM:18 \
  182. +               --group=SYSTEM:18 \
  183. +               cygdrive/c/cygwin \
  184. +               | \
  185. +                       bzip2 -9 >"$${base_filename}.tar.bz2" ; \
  186. +       archive_sha256hash="$$(openssl sha256 -r "$${base_filename}.tar.bz2" | while read a dummy ; do printf "%s\n" "$$a" ; done)" ; \
  187. +               sed -E <"../cygwin/README.bintarball.txt" \
  188. +                       -e "s/\\$$\{bintarball.base_filename\}/$${base_filename}/g" \
  189. +                       -e "s/\\$$\{bintarball.archive_sha256hash\}/$${archive_sha256hash}/g" >"$${base_filename}.readme" \
  190. +       ) ; \
  191. +       printf "\n#\n# 32bit-only tarball is ready now\n#\n" ; \
  192. +       ls -l "$(DESTDIR)/$${base_filename}.tar.bz2" ; \
  193. +       ls -l "$(DESTDIR)/$${base_filename}.readme"
  194. +       sync
  195. +
  196.  bintarball64: installdest64
  197.         set -o errexit ; set -o xtrace ; \
  198. -       base_filename="msnfs41client_cygwin_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
  199. +       base_filename="msnfs41client_cygwin_64bit_binaries_$$(date +%Y%m%d_%Hh%Mm)_git$$(git rev-parse --short HEAD)" ; \
  200.         ( \
  201.         cd "$(DESTDIR)" && \
  202.         tar -cvf - \
  203. --
  204. 2.45.1

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.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at