diff -u -r -N squid-6.1/cfgaux/ltmain.sh squid-6.2/cfgaux/ltmain.sh
--- squid-6.1/cfgaux/ltmain.sh	2023-07-06 17:28:32.000000000 +1200
+++ squid-6.2/cfgaux/ltmain.sh	2023-08-07 07:35:13.000000000 +1200
@@ -31,7 +31,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.7 Debian-2.4.7-5"
+VERSION="2.4.7 Debian-2.4.7-6"
 package_revision=2.4.7
 
 
@@ -572,27 +572,15 @@
 # ---------------------
 # Append VALUE onto the existing contents of VAR.
 
-  # We should try to minimise forks, especially on Windows where they are
-  # unreasonably slow, so skip the feature probes when bash or zsh are
-  # being used:
-  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
-    : ${_G_HAVE_ARITH_OP="yes"}
-    : ${_G_HAVE_XSI_OPS="yes"}
-    # The += operator was introduced in bash 3.1
-    case $BASH_VERSION in
-      [12].* | 3.0 | 3.0*) ;;
-      *)
-        : ${_G_HAVE_PLUSEQ_OP="yes"}
-        ;;
-    esac
-  fi
-
   # _G_HAVE_PLUSEQ_OP
   # Can be empty, in which case the shell is probed, "yes" if += is
   # useable or anything else if it does not work.
-  test -z "$_G_HAVE_PLUSEQ_OP" \
-    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
-    && _G_HAVE_PLUSEQ_OP=yes
+  if test -z "$_G_HAVE_PLUSEQ_OP" &&  \
+      __PLUSEQ_TEST="a" &&  \
+      __PLUSEQ_TEST+=" b" 2>/dev/null &&  \
+      test "a b" = "$__PLUSEQ_TEST"; then
+    _G_HAVE_PLUSEQ_OP=yes
+  fi
 
 if test yes = "$_G_HAVE_PLUSEQ_OP"
 then
@@ -2308,7 +2296,7 @@
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname $scriptversion Debian-2.4.7-5
+       version:        $progname $scriptversion Debian-2.4.7-6
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
diff -u -r -N squid-6.1/ChangeLog squid-6.2/ChangeLog
--- squid-6.1/ChangeLog	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/ChangeLog	2023-08-07 05:11:38.000000000 +1200
@@ -1,3 +1,11 @@
+Changes in squid-6.2 (06 Aug 2023):
+
+	- Bug 5187: Work around REQMOD satisfaction regression
+	- Bug 5290: pure virtual call in Ftp::Client constructor
+	- Fix memory leak when reconfiguring multiline all-of ACLs
+	- ... and a lot of code cleanups
+	- ... and some portability fixes on GNU/Hurd and MSWindows
+
 Changes in squid-6.1 (06 Jul 2023):
 
 	- Bug 5278: Log %err_code for "early" request handling errors
diff -u -r -N squid-6.1/compat/xstrto.cc squid-6.2/compat/xstrto.cc
--- squid-6.1/compat/xstrto.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/compat/xstrto.cc	2023-08-07 05:11:38.000000000 +1200
@@ -57,7 +57,7 @@
 
 #include <cerrno>
 
-bool
+static bool
 xstrtoul(const char *s, char **end, unsigned long *value,
          unsigned long min, unsigned long max)
 {
diff -u -r -N squid-6.1/compat/xstrto.h squid-6.2/compat/xstrto.h
--- squid-6.1/compat/xstrto.h	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/compat/xstrto.h	2023-08-07 05:11:38.000000000 +1200
@@ -9,11 +9,11 @@
 #ifndef _SQUID_XSTRTO_H
 #define _SQUID_XSTRTO_H
 
-// these functions are not used by the remaining Squid C code.
+// this function is not used by the remaining Squid C code
 #if defined(__cplusplus)
 
 /**
- * xstrtou{i,l} - string to number conversion
+ * Convert a c-string (or its prefix) into an unsigned integer.
  * \param s     input string
  * \param end   like strtoul's "end" pointer
  * \param value pointer for result. Undefined on failure
@@ -28,9 +28,6 @@
  * \return true/false whether number was accepted. On failure, *value has
  * undefined contents.
  */
-bool xstrtoul(const char *s, char **end, unsigned long *value,
-              unsigned long min, unsigned long max);
-
 bool xstrtoui(const char *s, char **end, unsigned int *value,
               unsigned int min, unsigned int max);
 
diff -u -r -N squid-6.1/configure squid-6.2/configure
--- squid-6.1/configure	2023-07-06 17:28:38.000000000 +1200
+++ squid-6.2/configure	2023-08-07 07:35:20.000000000 +1200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for Squid Web Proxy 6.1.
+# Generated by GNU Autoconf 2.71 for Squid Web Proxy 6.2.
 #
-# Report bugs to <http://bugs.squid-cache.org/>.
+# Report bugs to <https://bugs.squid-cache.org/>.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -277,7 +277,7 @@
     printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
     printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
-$0: http://bugs.squid-cache.org/ about your system,
+$0: https://bugs.squid-cache.org/ about your system,
 $0: including any error possibly output before this
 $0: message. Then install a modern shell, or manually run
 $0: the script under such a shell if you do have one."
@@ -626,9 +626,9 @@
 # Identity of this package.
 PACKAGE_NAME='Squid Web Proxy'
 PACKAGE_TARNAME='squid'
-PACKAGE_VERSION='6.1'
-PACKAGE_STRING='Squid Web Proxy 6.1'
-PACKAGE_BUGREPORT='http://bugs.squid-cache.org/'
+PACKAGE_VERSION='6.2'
+PACKAGE_STRING='Squid Web Proxy 6.2'
+PACKAGE_BUGREPORT='https://bugs.squid-cache.org/'
 PACKAGE_URL=''
 
 ac_unique_file="src/main.cc"
@@ -1696,7 +1696,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Squid Web Proxy 6.1 to adapt to many kinds of systems.
+\`configure' configures Squid Web Proxy 6.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1767,7 +1767,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Squid Web Proxy 6.1:";;
+     short | recursive ) echo "Configuration of Squid Web Proxy 6.2:";;
    esac
   cat <<\_ACEOF
 
@@ -2123,7 +2123,7 @@
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <http://bugs.squid-cache.org/>.
+Report bugs to <https://bugs.squid-cache.org/>.
 _ACEOF
 ac_status=$?
 fi
@@ -2187,7 +2187,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Squid Web Proxy configure 6.1
+Squid Web Proxy configure 6.2
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -3200,7 +3200,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Squid Web Proxy $as_me 6.1, which was
+It was created by Squid Web Proxy $as_me 6.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4692,7 +4692,7 @@
 
 # Define the identity of the package.
  PACKAGE='squid'
- VERSION='6.1'
+ VERSION='6.2'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -56854,7 +56854,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Squid Web Proxy $as_me 6.1, which was
+This file was extended by Squid Web Proxy $as_me 6.2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -56914,7 +56914,7 @@
 Configuration commands:
 $config_commands
 
-Report bugs to <http://bugs.squid-cache.org/>."
+Report bugs to <https://bugs.squid-cache.org/>."
 
 _ACEOF
 ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
@@ -56922,7 +56922,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-Squid Web Proxy config.status 6.1
+Squid Web Proxy config.status 6.2
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -u -r -N squid-6.1/configure.ac squid-6.2/configure.ac
--- squid-6.1/configure.ac	2023-07-06 17:28:38.000000000 +1200
+++ squid-6.2/configure.ac	2023-08-07 07:35:20.000000000 +1200
@@ -5,7 +5,7 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-AC_INIT([Squid Web Proxy],[6.1],[http://bugs.squid-cache.org/],[squid])
+AC_INIT([Squid Web Proxy],[6.2],[https://bugs.squid-cache.org/],[squid])
 AC_PREREQ(2.61)
 AC_CONFIG_HEADERS([include/autoconf.h])
 AC_CONFIG_AUX_DIR(cfgaux)
diff -u -r -N squid-6.1/doc/release-notes/release-6.html squid-6.2/doc/release-notes/release-6.html
--- squid-6.1/doc/release-notes/release-6.html	2023-07-06 17:32:46.000000000 +1200
+++ squid-6.2/doc/release-notes/release-6.html	2023-08-07 07:39:17.000000000 +1200
@@ -3,10 +3,10 @@
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.83">
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <TITLE>Squid 6.1 release notes</TITLE>
+ <TITLE>Squid 6.2 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 6.1 release notes</H1>
+<H1>Squid 6.2 release notes</H1>
 
 <H2>Squid Developers</H2>
 <P>
@@ -59,7 +59,7 @@
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Notice</A></H2>
 
-<P>The Squid Team are pleased to announce the release of Squid-6.1 for testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-6.2 for testing.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v6/">http://www.squid-cache.org/Versions/v6/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
diff -u -r -N squid-6.1/include/version.h squid-6.2/include/version.h
--- squid-6.1/include/version.h	2023-07-06 17:28:38.000000000 +1200
+++ squid-6.2/include/version.h	2023-08-07 07:35:20.000000000 +1200
@@ -10,7 +10,7 @@
 #define SQUID_VERSION_H
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1688621308
+#define SQUID_RELEASE_TIME 1691350510
 #endif
 
 /*
diff -u -r -N squid-6.1/lib/hash.cc squid-6.2/lib/hash.cc
--- squid-6.1/lib/hash.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/lib/hash.cc	2023-08-07 05:11:38.000000000 +1200
@@ -327,7 +327,7 @@
     hash_table *hid;
     LOCAL_ARRAY(char, buf, BUFSIZ);
     LOCAL_ARRAY(char, todelete, BUFSIZ);
-    hash_link *walker = NULL;
+    hash_link *walker = nullptr;
 
     todelete[0] = '\0';
     printf("init\n");
diff -u -r -N squid-6.1/lib/sspwin32.cc squid-6.2/lib/sspwin32.cc
--- squid-6.1/lib/sspwin32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/lib/sspwin32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -31,8 +31,8 @@
 SECURITY_STATUS SecurityStatus = SEC_E_OK;
 
 static DWORD cbMaxToken = 0;
-static uint8_t * pClientBuf = NULL;
-static uint8_t * pServerBuf = NULL;
+static uint8_t * pClientBuf = nullptr;
+static uint8_t * pServerBuf = nullptr;
 
 static AUTH_SEQ NTLM_asServer = {0};
 
@@ -40,18 +40,18 @@
 BOOL NTLM_LocalCall = FALSE;
 
 /* Function pointers */
-ACCEPT_SECURITY_CONTEXT_FN _AcceptSecurityContext = NULL;
-ACQUIRE_CREDENTIALS_HANDLE_FN _AcquireCredentialsHandle = NULL;
-COMPLETE_AUTH_TOKEN_FN _CompleteAuthToken = NULL;
-DELETE_SECURITY_CONTEXT_FN _DeleteSecurityContext = NULL;
-FREE_CONTEXT_BUFFER_FN _FreeContextBuffer = NULL;
-FREE_CREDENTIALS_HANDLE_FN _FreeCredentialsHandle = NULL;
-INITIALIZE_SECURITY_CONTEXT_FN _InitializeSecurityContext = NULL;
-QUERY_SECURITY_PACKAGE_INFO_FN _QuerySecurityPackageInfo = NULL;
+ACCEPT_SECURITY_CONTEXT_FN _AcceptSecurityContext = nullptr;
+ACQUIRE_CREDENTIALS_HANDLE_FN _AcquireCredentialsHandle = nullptr;
+COMPLETE_AUTH_TOKEN_FN _CompleteAuthToken = nullptr;
+DELETE_SECURITY_CONTEXT_FN _DeleteSecurityContext = nullptr;
+FREE_CONTEXT_BUFFER_FN _FreeContextBuffer = nullptr;
+FREE_CREDENTIALS_HANDLE_FN _FreeCredentialsHandle = nullptr;
+INITIALIZE_SECURITY_CONTEXT_FN _InitializeSecurityContext = nullptr;
+QUERY_SECURITY_PACKAGE_INFO_FN _QuerySecurityPackageInfo = nullptr;
 #ifdef UNICODE
-QUERY_CONTEXT_ATTRIBUTES_FN_W _QueryContextAttributes = NULL;
+QUERY_CONTEXT_ATTRIBUTES_FN_W _QueryContextAttributes = nullptr;
 #else
-QUERY_CONTEXT_ATTRIBUTES_FN_A _QueryContextAttributes = NULL;
+QUERY_CONTEXT_ATTRIBUTES_FN_A _QueryContextAttributes = nullptr;
 #endif
 
 void UnloadSecurityDll(void)
@@ -68,24 +68,24 @@
     xfree(pClientBuf);
     xfree(pServerBuf);
 
-    _AcceptSecurityContext      = NULL;
-    _AcquireCredentialsHandle   = NULL;
-    _CompleteAuthToken          = NULL;
-    _DeleteSecurityContext      = NULL;
-    _FreeContextBuffer          = NULL;
-    _FreeCredentialsHandle      = NULL;
-    _InitializeSecurityContext  = NULL;
-    _QuerySecurityPackageInfo   = NULL;
-    _QueryContextAttributes     = NULL;
+    _AcceptSecurityContext      = nullptr;
+    _AcquireCredentialsHandle   = nullptr;
+    _CompleteAuthToken          = nullptr;
+    _DeleteSecurityContext      = nullptr;
+    _FreeContextBuffer          = nullptr;
+    _FreeCredentialsHandle      = nullptr;
+    _InitializeSecurityContext  = nullptr;
+    _QuerySecurityPackageInfo   = nullptr;
+    _QueryContextAttributes     = nullptr;
 
-    hModule = NULL;
+    hModule = nullptr;
 }
 
 HMODULE LoadSecurityDll(int mode, const char * SSP_Package)
 {
     TCHAR lpszDLL[MAX_PATH];
     OSVERSIONINFO VerInfo;
-    PSecPkgInfo pSPI       = NULL;
+    PSecPkgInfo pSPI       = nullptr;
 
     /*
     *  Find out which security DLL to use, depending on
@@ -93,7 +93,7 @@
     *  We have to use security.dll on Windows NT 4.0.
     *  All other operating systems, we have to use Secur32.dll
     */
-    hModule = NULL;
+    hModule = nullptr;
     if ((mode != SSP_BASIC) && (mode != SSP_NTLM))
         return hModule;
     NTLM_mode = mode;
@@ -115,7 +115,7 @@
                              GetProcAddress(hModule, "AcceptSecurityContext");
     if (!_AcceptSecurityContext) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
 #ifdef UNICODE
@@ -127,35 +127,35 @@
 #endif
     if (!_AcquireCredentialsHandle) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
     _CompleteAuthToken = (COMPLETE_AUTH_TOKEN_FN)
                          GetProcAddress(hModule, "CompleteAuthToken");
     if (!_CompleteAuthToken) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
     _DeleteSecurityContext = (DELETE_SECURITY_CONTEXT_FN)
                              GetProcAddress(hModule, "DeleteSecurityContext");
     if (!_DeleteSecurityContext) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
     _FreeContextBuffer = (FREE_CONTEXT_BUFFER_FN)
                          GetProcAddress(hModule, "FreeContextBuffer");
     if (!_FreeContextBuffer) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
     _FreeCredentialsHandle = (FREE_CREDENTIALS_HANDLE_FN)
                              GetProcAddress(hModule, "FreeCredentialsHandle");
     if (!_FreeCredentialsHandle) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
 #ifdef UNICODE
@@ -167,7 +167,7 @@
 #endif
     if (!_InitializeSecurityContext) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
         return hModule;
     }
 #ifdef UNICODE
@@ -179,7 +179,7 @@
 #endif
     if (!_QuerySecurityPackageInfo) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
     }
 
 #ifdef UNICODE
@@ -191,7 +191,7 @@
 #endif
     if (!_QueryContextAttributes) {
         UnloadSecurityDll();
-        hModule = NULL;
+        hModule = nullptr;
     }
 
     /* Get max token size */
@@ -228,8 +228,8 @@
     ULONG           fContextAttr;
 
     if (!pAS->fInitialized) {
-        SecurityStatus = _AcquireCredentialsHandle(NULL, (SEC_CHAR*) _T(SSP_Package_InUse),
-                         SECPKG_CRED_OUTBOUND, NULL, (NTLM_mode == SSP_NTLM) ? NULL : pAuthIdentity, NULL, NULL,
+        SecurityStatus = _AcquireCredentialsHandle(nullptr, (SEC_CHAR*) _T(SSP_Package_InUse),
+                         SECPKG_CRED_OUTBOUND, nullptr, (NTLM_mode == SSP_NTLM) ? NULL : pAuthIdentity, nullptr, nullptr,
                          &pAS->hcred, &tsExpiry);
         if (SecurityStatus < 0)
             return FALSE;
@@ -254,7 +254,7 @@
         sbIn.pvBuffer = pIn;
     }
     SecurityStatus = _InitializeSecurityContext(&pAS->hcred,
-                     pAS->fInitialized ? &pAS->hctxt : NULL, NULL, 0, 0,
+                     pAS->fInitialized ? &pAS->hctxt : NULL, nullptr, 0, 0,
                      SECURITY_NATIVE_DREP, pAS->fInitialized ? &sbdIn : NULL,
                      0, &pAS->hctxt, &sbdOut, &fContextAttr, &tsExpiry);
     if (SecurityStatus < 0)
@@ -298,8 +298,8 @@
     SecPkgContext_Names namebuffer;
 
     if (!pAS->fInitialized)  {
-        SecurityStatus = _AcquireCredentialsHandle(NULL, (SEC_CHAR*) _T(SSP_Package_InUse),
-                         SECPKG_CRED_INBOUND, NULL, NULL, NULL, NULL, &pAS->hcred,
+        SecurityStatus = _AcquireCredentialsHandle(nullptr, (SEC_CHAR*) _T(SSP_Package_InUse),
+                         SECPKG_CRED_INBOUND, nullptr, nullptr, nullptr, nullptr, &pAS->hcred,
                          &pAS->hcredLifeTime);
 #if SSP_DEBUG
         fprintf(stderr, "AcquireCredentialsHandle returned: %x\n", SecurityStatus);
@@ -411,14 +411,14 @@
 
         /* Prepare client message (negotiate) */
         cbOut = cbMaxToken;
-        if (!GenClientContext(&asClient, &ai, NULL, 0, pClientBuf, &cbOut, &fDone))
+        if (!GenClientContext(&asClient, &ai, nullptr, 0, pClientBuf, &cbOut, &fDone))
             break;
 
         /* Prepare server message (challenge) */
         cbIn = cbOut;
         cbOut = cbMaxToken;
         if (!GenServerContext(&asServer, pClientBuf, cbIn, pServerBuf, &cbOut,
-                              &fDone, NULL))
+                              &fDone, nullptr))
             break;
         /* Most likely failure: AcceptServerContext fails with SEC_E_LOGON_DENIED
          * in the case of bad szUser or szPassword.
@@ -437,7 +437,7 @@
         cbIn = cbOut;
         cbOut = cbMaxToken;
         if (!GenServerContext(&asServer, pClientBuf, cbIn, pServerBuf, &cbOut,
-                              &fDone, NULL))
+                              &fDone, nullptr))
             break;
         fResult = TRUE;
     } while (0);
@@ -458,7 +458,7 @@
 const char * WINAPI SSP_MakeChallenge(PVOID PNegotiateBuf, int NegotiateLen)
 {
     BOOL        fDone      = FALSE;
-    uint8_t  * fResult = NULL;
+    uint8_t  * fResult = nullptr;
     DWORD       cbOut      = 0;
     DWORD       cbIn       = 0;
     ntlm_challenge * challenge;
@@ -481,7 +481,7 @@
         cbIn = NegotiateLen;
         cbOut = cbMaxToken;
         if (!GenServerContext(&NTLM_asServer, pClientBuf, cbIn, pServerBuf, &cbOut,
-                              &fDone, NULL))
+                              &fDone, nullptr))
             break;
         fResult = pServerBuf;
     } while (0);
@@ -499,7 +499,7 @@
         encoded[dstLen] = '\0';
         return encoded;
     }
-    return NULL;
+    return nullptr;
 }
 
 BOOL WINAPI SSP_ValidateNTLMCredentials(PVOID PAutenticateBuf, int AutenticateLen, char * credentials)
@@ -565,7 +565,7 @@
         encoded[dstLen] = '\0';
         return encoded;
     }
-    return NULL;
+    return nullptr;
 }
 
 const char * WINAPI SSP_ValidateNegotiateCredentials(PVOID PAutenticateBuf, int AutenticateLen, PBOOL fDone, int * Status, char * credentials)
@@ -600,6 +600,6 @@
         encoded[dstLen] = '\0';
         return encoded;
     }
-    return NULL;
+    return nullptr;
 }
 
diff -u -r -N squid-6.1/RELEASENOTES.html squid-6.2/RELEASENOTES.html
--- squid-6.1/RELEASENOTES.html	2023-07-06 17:32:46.000000000 +1200
+++ squid-6.2/RELEASENOTES.html	2023-08-07 07:39:17.000000000 +1200
@@ -3,10 +3,10 @@
 <HEAD>
  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.83">
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <TITLE>Squid 6.1 release notes</TITLE>
+ <TITLE>Squid 6.2 release notes</TITLE>
 </HEAD>
 <BODY>
-<H1>Squid 6.1 release notes</H1>
+<H1>Squid 6.2 release notes</H1>
 
 <H2>Squid Developers</H2>
 <P>
@@ -59,7 +59,7 @@
 <HR>
 <H2><A NAME="s1">1.</A> <A HREF="#toc1">Notice</A></H2>
 
-<P>The Squid Team are pleased to announce the release of Squid-6.1 for testing.</P>
+<P>The Squid Team are pleased to announce the release of Squid-6.2 for testing.</P>
 <P>This new release is available for download from 
 <A HREF="http://www.squid-cache.org/Versions/v6/">http://www.squid-cache.org/Versions/v6/</A> or the
 <A HREF="http://www.squid-cache.org/Download/http-mirrors.html">mirrors</A>.</P>
diff -u -r -N squid-6.1/src/acl/AllOf.cc squid-6.2/src/acl/AllOf.cc
--- squid-6.1/src/acl/AllOf.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/AllOf.cc	2023-08-07 05:11:38.000000000 +1200
@@ -10,6 +10,7 @@
 #include "acl/AllOf.h"
 #include "acl/BoolOps.h"
 #include "acl/Checklist.h"
+#include "acl/Gadgets.h"
 #include "cache_cf.h"
 #include "MemBuf.h"
 #include "sbuf/SBuf.h"
@@ -64,6 +65,7 @@
         newWhole->context(wholeCtx.content(), oldNode->cfgline);
         newWhole->add(oldNode); // old (i.e. first) line
         nodes.front() = whole = newWhole;
+        aclRegister(newWhole);
     } else {
         // this is the first line for this acl; just use it as is
         whole = this;
diff -u -r -N squid-6.1/src/acl/external/AD_group/ext_ad_group_acl.cc squid-6.2/src/acl/external/AD_group/ext_ad_group_acl.cc
--- squid-6.1/src/acl/external/AD_group/ext_ad_group_acl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/AD_group/ext_ad_group_acl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -102,11 +102,11 @@
 pid_t mypid;
 char *machinedomain;
 int use_case_insensitive_compare = 0;
-char *DefaultDomain = NULL;
+char *DefaultDomain = nullptr;
 const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/";
 int numberofgroups = 0;
 int WIN32_COM_initialized = 0;
-char *WIN32_ErrorMessage = NULL;
+char *WIN32_ErrorMessage = nullptr;
 wchar_t **User_Groups;
 int User_Groups_Count = 0;
 
@@ -157,7 +157,7 @@
     VARIANT var;
     unsigned User_primaryGroupID;
     char tmpSID[SECURITY_MAX_SID_SIZE * 2];
-    wchar_t *wc = NULL, *result = NULL;
+    wchar_t *wc = nullptr, *result = nullptr;
     int wcsize;
 
     VariantInit(&var);
@@ -177,8 +177,8 @@
     hr = pUser->lpVtbl->Get(pUser, L"objectSid", &var);
     if (SUCCEEDED(hr)) {
         PSID pObjectSID;
-        LPBYTE pByte = NULL;
-        char *szSID = NULL;
+        LPBYTE pByte = nullptr;
+        char *szSID = nullptr;
         hr = GetLPBYTEtoOctetString(&var, &pByte);
 
         pObjectSID = (PSID) pByte;
@@ -213,12 +213,12 @@
 {
     FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
                   FORMAT_MESSAGE_IGNORE_INSERTS,
-                  NULL,
+                  nullptr,
                   hr,
                   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                   (LPTSTR) & WIN32_ErrorMessage,
                   0,
-                  NULL);
+                  nullptr);
     return WIN32_ErrorMessage;
 }
 
@@ -240,7 +240,7 @@
         WIN32_COM_initialized = 1;
     }
     hr = CoCreateInstance(&CLSID_NameTranslate,
-                          NULL,
+                          nullptr,
                           CLSCTX_INPROC_SERVER,
                           &IID_IADsNameTranslate,
                           (void **) &pNto);
@@ -260,13 +260,13 @@
     if (FAILED(hr)) {
         debug("My_NameTranslate: cannot set translate of %S, ERROR: %s\n", name, Get_WIN32_ErrorMessage(hr));
         pNto->lpVtbl->Release(pNto);
-        return NULL;
+        return nullptr;
     }
     hr = pNto->lpVtbl->Get(pNto, out_format, &bstr);
     if (FAILED(hr)) {
         debug("My_NameTranslate: cannot get translate of %S, ERROR: %s\n", name, Get_WIN32_ErrorMessage(hr));
         pNto->lpVtbl->Release(pNto);
-        return NULL;
+        return nullptr;
     }
     debug("My_NameTranslate: %S translated to %S\n", name, bstr);
 
@@ -296,11 +296,11 @@
 char *
 GetDomainName(void)
 {
-    static char *DomainName = NULL;
+    static char *DomainName = nullptr;
     PDSROLE_PRIMARY_DOMAIN_INFO_BASIC pDSRoleInfo;
     DWORD netret;
 
-    if ((netret = DsRoleGetPrimaryDomainInformation(NULL, DsRolePrimaryDomainInfoBasic, (PBYTE *) & pDSRoleInfo) == ERROR_SUCCESS)) {
+    if ((netret = DsRoleGetPrimaryDomainInformation(nullptr, DsRolePrimaryDomainInfoBasic, (PBYTE *) & pDSRoleInfo) == ERROR_SUCCESS)) {
         /*
          * Check the machine role.
          */
@@ -317,7 +317,7 @@
             DomainName = (char *) xmalloc(len + 1);
 
             /* copy unicode buffer */
-            WideCharToMultiByte(CP_ACP, 0, pDSRoleInfo->DomainNameFlat, -1, DomainName, len, NULL, NULL);
+            WideCharToMultiByte(CP_ACP, 0, pDSRoleInfo->DomainNameFlat, -1, DomainName, len, nullptr, nullptr);
 
             /* add null termination */
             DomainName[len] = '\0';
@@ -350,7 +350,7 @@
 
     if (User_Groups_Count == 0) {
         User_Groups = (wchar_t **) xmalloc(sizeof(wchar_t *));
-        *User_Groups = NULL;
+        *User_Groups = nullptr;
         ++User_Groups_Count;
     }
     array = User_Groups;
@@ -360,7 +360,7 @@
         ++array;
     }
     User_Groups = (wchar_t **) xrealloc(User_Groups, sizeof(wchar_t *) * (User_Groups_Count + 1));
-    User_Groups[User_Groups_Count] = NULL;
+    User_Groups[User_Groups_Count] = nullptr;
     User_Groups[User_Groups_Count - 1] = (wchar_t *) xmalloc((wcslen(Group) + 1) * sizeof(wchar_t));
     wcscpy(User_Groups[User_Groups_Count - 1], Group);
     ++User_Groups_Count;
@@ -480,7 +480,7 @@
 static wchar_t **
 build_groups_DN_array(const char **array, char *userdomain)
 {
-    wchar_t *wc = NULL;
+    wchar_t *wc = nullptr;
     int wcsize;
     int source_group_format;
     char Group[GNLEN + 1];
@@ -515,7 +515,7 @@
         }
         ++entry;
     }
-    *entry = NULL;
+    *entry = nullptr;
     return wc_array;
 }
 
@@ -537,7 +537,7 @@
     NET_API_STATUS nStatus;
     DWORD i;
     DWORD dwTotalCount = 0;
-    LPBYTE pBufTmp = NULL;
+    LPBYTE pBufTmp = nullptr;
 
     if ((Domain_Separator = strchr(UserName, '/')) != NULL)
         *Domain_Separator = '\\';
@@ -557,7 +557,7 @@
      * function should also return the names of the local
      * groups in which the user is indirectly a member.
      */
-    nStatus = NetUserGetLocalGroups(NULL,
+    nStatus = NetUserGetLocalGroups(nullptr,
                                     wszUserName,
                                     dwLevel,
                                     dwFlags,
@@ -605,7 +605,7 @@
     WCHAR wszUser[DNLEN + UNLEN + 2];   /* Unicode user name */
     char NTDomain[DNLEN + UNLEN + 2];
 
-    char *domain_qualify = NULL;
+    char *domain_qualify = nullptr;
     char User[DNLEN + UNLEN + 2];
     size_t j;
 
@@ -785,8 +785,8 @@
     }
     mypid = getpid();
 
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     /* Check Command Line */
     process_options(argc, argv);
@@ -833,11 +833,11 @@
             continue;
         }
         username = strtok(buf, " ");
-        for (n = 0; (group = strtok(NULL, " ")) != NULL; ++n) {
+        for (n = 0; (group = strtok(nullptr, " ")) != NULL; ++n) {
             rfc1738_unescape(group);
             groups[n] = group;
         }
-        groups[n] = NULL;
+        groups[n] = nullptr;
         numberofgroups = n;
 
         if (NULL == username) {
diff -u -r -N squid-6.1/src/acl/external/delayer/ext_delayer_acl.8 squid-6.2/src/acl/external/delayer/ext_delayer_acl.8
--- squid-6.1/src/acl/external/delayer/ext_delayer_acl.8	2023-07-06 17:32:52.000000000 +1200
+++ squid-6.2/src/acl/external/delayer/ext_delayer_acl.8	2023-08-07 07:39:21.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_DELAYER_ACL 8"
-.TH EXT_DELAYER_ACL 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH EXT_DELAYER_ACL 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/acl/external/eDirectory_userip/ext_edirectory_userip_acl.cc squid-6.2/src/acl/external/eDirectory_userip/ext_edirectory_userip_acl.cc
--- squid-6.1/src/acl/external/eDirectory_userip/ext_edirectory_userip_acl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/eDirectory_userip/ext_edirectory_userip_acl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -1722,7 +1722,7 @@
                     local_printfx("BH message=\"(SearchFilterLDAP: %s)\"\n", ErrLDAP(x));
                 } else {
                     edui_ldap.err = -1;
-                    debug("SearchFilterLDAP(-, NULL) -> Length: %u\n", x);
+                    debug("SearchFilterLDAP(-, nullptr) -> Length: %u\n", x);
                     x = SearchLDAP(&edui_ldap, edui_ldap.scope, edui_ldap.search_filter, (char **) &search_attrib);
                     if (x != LDAP_ERR_SUCCESS) {
                         debug("SearchLDAP() -> %s (LDAP: %s)\n", ErrLDAP(x), ldap_err2string(x));
diff -u -r -N squid-6.1/src/acl/external/kerberos_ldap_group/support_krb5.cc squid-6.2/src/acl/external/kerberos_ldap_group/support_krb5.cc
--- squid-6.1/src/acl/external/kerberos_ldap_group/support_krb5.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/kerberos_ldap_group/support_krb5.cc	2023-08-07 05:11:38.000000000 +1200
@@ -350,7 +350,7 @@
                 creds->client = principal;
                 code = krb5_parse_name(kparam.context, service, &creds->server);
                 xfree(service);
-                code = krb5_get_in_tkt_with_keytab(kparam.context, 0, NULL, NULL, NULL, keytab, NULL, creds, 0);
+                code = krb5_get_in_tkt_with_keytab(kparam.context, 0, nullptr, nullptr, nullptr, keytab, nullptr, creds, 0);
 #endif
 
                 if (code) {
@@ -435,7 +435,7 @@
                 creds->client = principal_list[i];
                 code = krb5_parse_name(kparam.context, service, &creds->server);
                 xfree(service);
-                code = krb5_get_in_tkt_with_keytab(kparam.context, 0, NULL, NULL, NULL, keytab, NULL, creds, 0);
+                code = krb5_get_in_tkt_with_keytab(kparam.context, 0, nullptr, nullptr, nullptr, keytab, nullptr, creds, 0);
 #endif
                 if (code) {
                     k5_error("Error while initialising credentials from keytab", code);
diff -u -r -N squid-6.1/src/acl/external/kerberos_ldap_group/support_ldap.cc squid-6.2/src/acl/external/kerberos_ldap_group/support_ldap.cc
--- squid-6.1/src/acl/external/kerberos_ldap_group/support_ldap.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/kerberos_ldap_group/support_ldap.cc	2023-08-07 05:11:38.000000000 +1200
@@ -117,8 +117,8 @@
     credp = credp;
     methodp = methodp;
     freeit = freeit;
-    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, NULL, NULL,
-                            NULL);
+    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, nullptr, nullptr,
+                            nullptr);
 }
 #elif HAVE_LDAP_REBIND_PROC
 #if HAVE_SASL_H || HAVE_SASL_SASL_H || HAVE_SASL_DARWIN
@@ -145,8 +145,8 @@
         cred.bv_val = cp->pw;
         cred.bv_len = strlen(cp->pw);
     }
-    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, NULL, NULL,
-                            NULL);
+    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, nullptr, nullptr,
+                            nullptr);
 }
 
 #elif HAVE_LDAP_REBIND_FUNCTION
@@ -185,8 +185,8 @@
     credp = credp;
     methodp = methodp;
     freeit = freeit;
-    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, NULL, NULL,
-                            NULL);
+    return ldap_sasl_bind_s(ld, cp->dn, LDAP_SASL_SIMPLE, &cred, nullptr, nullptr,
+                            nullptr);
 }
 #else
 #error "No rebind functione defined"
@@ -533,7 +533,7 @@
 #if HAVE_OPENLDAP
     int val;
 #elif HAVE_LDAPSSL_CLIENT_INIT
-    char *ssl_certdbpath = NULL;
+    char *ssl_certdbpath = nullptr;
 #endif
 
 #if HAVE_OPENLDAP
@@ -616,8 +616,8 @@
      *  Solaris SSL ldap calls require path to certificate database
      */
     /*
-     * rc = ldapssl_client_init( ssl_certdbpath, NULL );
-     * rc = ldapssl_advclientauth_init( ssl_certdbpath, NULL , 0 , NULL, NULL, 0, NULL, 2);
+     * rc = ldapssl_client_init( ssl_certdbpath, nullptr);
+     * rc = ldapssl_advclientauth_init( ssl_certdbpath, nullptr, 0 , nullptr, nullptr, 0, nullptr, 2);
      */
     ssl_certdbpath = getenv("SSL_CERTDBPATH");
     if (!ssl_certdbpath) {
@@ -627,11 +627,11 @@
           "%s| %s: DEBUG: Set certificate database path for ldap server to %s. (Changeable through setting environment variable SSL_CERTDBPATH)\n",
           LogTime(), PROGRAM, ssl_certdbpath);
     if (!margs->rc_allow) {
-        rc = ldapssl_advclientauth_init(ssl_certdbpath, NULL, 0, NULL, NULL, 0,
-                                        NULL, 2);
+        rc = ldapssl_advclientauth_init(ssl_certdbpath, nullptr, 0, nullptr, nullptr, 0,
+                                        nullptr, 2);
     } else {
-        rc = ldapssl_advclientauth_init(ssl_certdbpath, NULL, 0, NULL, NULL, 0,
-                                        NULL, 0);
+        rc = ldapssl_advclientauth_init(ssl_certdbpath, nullptr, 0, nullptr, nullptr, 0,
+                                        nullptr, 0);
         debug((char *)
               "%s| %s: DEBUG: Disable server certificate check for ldap server.\n",
               LogTime(), PROGRAM);
@@ -846,7 +846,7 @@
               LogTime(), PROGRAM, ldap_err2string(rc));
         xfree(ldapuri);
         ldap_free_urldesc(url);
-        return NULL;
+        return nullptr;
     }
 #else
 #error "No URL parsing function"
@@ -920,7 +920,7 @@
                       LogTime(), PROGRAM, ldap_err2string(rc));
                 xfree(ldapuri);
                 ldap_free_urldesc(url);
-                return NULL;
+                return nullptr;
             }
 #else
 #error "No URL parsing function"
@@ -952,18 +952,18 @@
             error((char *)
                   "%s| %s: ERROR: Error while setting SSL for ldap server: %s\n",
                   LogTime(), PROGRAM, ldapssl_err2string(rc));
-            ldap_unbind_ext(ld, NULL, NULL);
-            ld = NULL;
-            return NULL;
+            ldap_unbind_ext(ld, nullptr, nullptr);
+            ld = nullptr;
+            return nullptr;
         }
         rc = ldap_set_defaults(ld);
         if (rc != LDAP_SUCCESS) {
             error((char *)
                   "%s| %s: ERROR: Error while setting default options for ldap server: %s\n",
                   LogTime(), PROGRAM, ldap_err2string(rc));
-            ldap_unbind_ext(ld, NULL, NULL);
-            ld = NULL;
-            return NULL;
+            ldap_unbind_ext(ld, nullptr, nullptr);
+            ld = nullptr;
+            return nullptr;
         }
 #else
         error((char *) "%s| %s: ERROR: SSL not supported by ldap library\n",
@@ -1102,8 +1102,8 @@
                 break;
             }
 #else
-            ldap_unbind_ext(ld, NULL, NULL);
-            ld = NULL;
+            ldap_unbind_ext(ld, nullptr, nullptr);
+            ld = nullptr;
             error((char *) "%s| %s: ERROR: SASL not supported on system\n",
                   LogTime(), PROGRAM);
             continue;
diff -u -r -N squid-6.1/src/acl/external/kerberos_ldap_group/support_sasl.cc squid-6.2/src/acl/external/kerberos_ldap_group/support_sasl.cc
--- squid-6.1/src/acl/external/kerberos_ldap_group/support_sasl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/kerberos_ldap_group/support_sasl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -239,7 +239,7 @@
     char *sasl_secprops;
     /*
      * char  *sasl_secprops = (char *)"maxssf=56";
-     * char  *sasl_secprops = NULL;
+     * char  *sasl_secprops = nullptr;
      */
     struct berval passwd = {};
     void *defaults;
diff -u -r -N squid-6.1/src/acl/external/kerberos_sid_group/ext_kerberos_sid_group_acl.8 squid-6.2/src/acl/external/kerberos_sid_group/ext_kerberos_sid_group_acl.8
--- squid-6.1/src/acl/external/kerberos_sid_group/ext_kerberos_sid_group_acl.8	2023-07-06 17:32:52.000000000 +1200
+++ squid-6.2/src/acl/external/kerberos_sid_group/ext_kerberos_sid_group_acl.8	2023-08-07 07:39:21.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_KERBEROS_SID_GROUP_ACL 8"
-.TH EXT_KERBEROS_SID_GROUP_ACL 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH EXT_KERBEROS_SID_GROUP_ACL 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/acl/external/LDAP_group/ext_ldap_group_acl.cc squid-6.2/src/acl/external/LDAP_group/ext_ldap_group_acl.cc
--- squid-6.1/src/acl/external/LDAP_group/ext_ldap_group_acl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/LDAP_group/ext_ldap_group_acl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -76,7 +76,7 @@
 typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlA *, IN PLDAPControlA *);
 #endif /* LDAP_UNICODE */
 PFldap_start_tls_s Win32_ldap_start_tls_s;
-#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l,NULL,NULL,s,c)
+#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l, nullptr, nullptr,s,c)
 #endif /* LDAP_VERSION3 */
 
 #else
@@ -107,7 +107,7 @@
 static int noreferrals = 0;
 static int aliasderef = LDAP_DEREF_NEVER;
 #if defined(NETSCAPE_SSL)
-static char *sslpath = NULL;
+static char *sslpath = nullptr;
 static int sslinit = 0;
 #endif
 static int connect_timeout = 0;
@@ -523,7 +523,7 @@
 #endif
 #if NETSCAPE_SSL
                     if (sslpath) {
-                        if (!sslinit && (ldapssl_client_init(sslpath, NULL) != LDAP_SUCCESS)) {
+                        if (!sslinit && (ldapssl_client_init(sslpath, nullptr) != LDAP_SUCCESS)) {
                             fprintf(stderr, "FATAL: Unable to initialise SSL with cert path %s\n", sslpath);
                             exit(EXIT_FAILURE);
                         } else {
diff -u -r -N squid-6.1/src/acl/external/LM_group/ext_lm_group_acl.cc squid-6.2/src/acl/external/LM_group/ext_lm_group_acl.cc
--- squid-6.1/src/acl/external/LM_group/ext_lm_group_acl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/LM_group/ext_lm_group_acl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -102,7 +102,7 @@
 pid_t mypid;
 char *machinedomain;
 int use_case_insensitive_compare = 0;
-char *DefaultDomain = NULL;
+char *DefaultDomain = nullptr;
 const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/";
 
 char *
@@ -117,10 +117,10 @@
     safe_free(target);
     target = (char *) xmalloc(len);
     if (target == NULL)
-        return NULL;
+        return nullptr;
 
     /* copy unicode buffer */
-    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, NULL, NULL);
+    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, nullptr, nullptr);
 
     /* add null termination */
     target[len - 1] = '\0';
@@ -136,7 +136,7 @@
     PPOLICY_PRIMARY_DOMAIN_INFO ppdiDomainInfo;
     PWKSTA_INFO_100 pwkiWorkstationInfo;
     DWORD netret;
-    char *DomainName = NULL;
+    char *DomainName = nullptr;
 
     /*
      * Always initialize the object attributes to all zeroes.
@@ -150,7 +150,7 @@
      * The wki100_computername field contains a pointer to a UNICODE
      * string containing the local computer name.
      */
-    netret = NetWkstaGetInfo(NULL, 100, (LPBYTE *) & pwkiWorkstationInfo);
+    netret = NetWkstaGetInfo(nullptr, 100, (LPBYTE *) & pwkiWorkstationInfo);
     if (netret == NERR_Success) {
         /*
          * We have the workstation name in:
@@ -160,7 +160,7 @@
          * the LsaOpenPolicy function.
          */
         status = LsaOpenPolicy(
-                     NULL,
+                     nullptr,
                      &ObjectAttributes,
                      GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION,
                      &PolicyHandle
@@ -199,7 +199,7 @@
                      */
                     debug("Member of Domain %s\n", DomainName);
                 } else {
-                    DomainName = NULL;
+                    DomainName = nullptr;
                 }
             }
         }
@@ -240,7 +240,7 @@
     char *Domain_Separator;
     WCHAR wszUserName[UNLEN + 1];   // Unicode user name
 
-    LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
+    LPLOCALGROUP_USERS_INFO_0 pBuf = nullptr;
     LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
     DWORD dwLevel = 0;
     DWORD dwFlags = LG_INCLUDE_INDIRECT;
@@ -270,7 +270,7 @@
      * groups in which the user is indirectly a member.
      */
     nStatus = NetUserGetLocalGroups(
-                  NULL,
+                  nullptr,
                   wszUserName,
                   dwLevel,
                   dwFlags,
@@ -323,11 +323,11 @@
     char User[UNLEN + 1];
     size_t j;
 
-    LPWSTR LclDCptr = NULL;
-    LPWSTR UsrDCptr = NULL;
-    LPGROUP_USERS_INFO_0 pUsrBuf = NULL;
+    LPWSTR LclDCptr = nullptr;
+    LPWSTR UsrDCptr = nullptr;
+    LPGROUP_USERS_INFO_0 pUsrBuf = nullptr;
     LPGROUP_USERS_INFO_0 pTmpBuf;
-    LPSERVER_INFO_101 pSrvBuf = NULL;
+    LPSERVER_INFO_101 pSrvBuf = nullptr;
     DWORD dwLevel = 0;
     DWORD dwPrefMaxLen = -1;
     DWORD dwEntriesRead = 0;
@@ -363,16 +363,16 @@
 
     /* Call the NetServerGetInfo function for local computer, specifying level 101. */
     dwLevel = 101;
-    nStatus = NetServerGetInfo(NULL, dwLevel, (LPBYTE *) & pSrvBuf);
+    nStatus = NetServerGetInfo(nullptr, dwLevel, (LPBYTE *) & pSrvBuf);
 
     if (nStatus == NERR_Success) {
         /* Check if we are running on a Domain Controller */
         if ((pSrvBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
                 (pSrvBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL)) {
-            LclDCptr = NULL;
+            LclDCptr = nullptr;
             debug("Running on a DC.\n");
         } else
-            nStatus = (use_PDC_only ? NetGetDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr) : NetGetAnyDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr));
+            nStatus = (use_PDC_only ? NetGetDCName(nullptr, wszLocalDomain, (LPBYTE *) & LclDCptr) : NetGetAnyDCName(nullptr, wszLocalDomain, (LPBYTE *) & LclDCptr));
     } else {
         fprintf(stderr, "%s: ERROR: NetServerGetInfo() failed.'\n", program_name);
         if (pSrvBuf != NULL)
@@ -525,8 +525,8 @@
     }
     mypid = getpid();
 
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     /* Check Command Line */
     process_options(argc, argv);
@@ -576,11 +576,11 @@
             continue;
         }
         username = strtok(buf, " ");
-        for (n = 0; (group = strtok(NULL, " ")) != NULL; ++n) {
+        for (n = 0; (group = strtok(nullptr, " ")) != NULL; ++n) {
             rfc1738_unescape(group);
             groups[n] = group;
         }
-        groups[n] = NULL;
+        groups[n] = nullptr;
 
         if (NULL == username) {
             SEND_BH(HLP_MSG("Invalid Request. No Username."));
diff -u -r -N squid-6.1/src/acl/external/SQL_session/ext_sql_session_acl.8 squid-6.2/src/acl/external/SQL_session/ext_sql_session_acl.8
--- squid-6.1/src/acl/external/SQL_session/ext_sql_session_acl.8	2023-07-06 17:32:52.000000000 +1200
+++ squid-6.2/src/acl/external/SQL_session/ext_sql_session_acl.8	2023-08-07 07:39:22.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_SQL_SESSION_ACL 8"
-.TH EXT_SQL_SESSION_ACL 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH EXT_SQL_SESSION_ACL 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/acl/external/time_quota/ext_time_quota_acl.cc squid-6.2/src/acl/external/time_quota/ext_time_quota_acl.cc
--- squid-6.1/src/acl/external/time_quota/ext_time_quota_acl.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/acl/external/time_quota/ext_time_quota_acl.cc	2023-08-07 05:11:38.000000000 +1200
@@ -287,11 +287,11 @@
             if ((username = strtok(line, "\t ")) != NULL) {
 
                 /* get the time budget */
-                if ((budget = strtok(NULL, "/")) == NULL) {
+                if ((budget = strtok(nullptr, "/")) == NULL) {
                     fprintf(stderr, "ERROR: missing 'budget' field on line %u of '%s'.\n", lineCount, filename);
                     continue;
                 }
-                if ((period = strtok(NULL, "/")) == NULL) {
+                if ((period = strtok(nullptr, "/")) == NULL) {
                     fprintf(stderr, "ERROR: missing 'period' field on line %u of '%s'.\n", lineCount, filename);
                     continue;
                 }
@@ -438,7 +438,7 @@
     }
 
     log_info("Starting %s\n", __FILE__);
-    setbuf(stdout, NULL);
+    setbuf(stdout, nullptr);
 
     init_db();
 
diff -u -r -N squid-6.1/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8 squid-6.2/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8
--- squid-6.1/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8	2023-07-06 17:32:52.000000000 +1200
+++ squid-6.2/src/acl/external/wbinfo_group/ext_wbinfo_group_acl.8	2023-08-07 07:39:22.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "EXT_WBINFO_GROUP_ACL 8"
-.TH EXT_WBINFO_GROUP_ACL 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH EXT_WBINFO_GROUP_ACL 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/auth/basic/DB/basic_db_auth.8 squid-6.2/src/auth/basic/DB/basic_db_auth.8
--- squid-6.1/src/auth/basic/DB/basic_db_auth.8	2023-07-06 17:32:53.000000000 +1200
+++ squid-6.2/src/auth/basic/DB/basic_db_auth.8	2023-08-07 07:39:23.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_DB_AUTH 8"
-.TH BASIC_DB_AUTH 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH BASIC_DB_AUTH 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/auth/basic/LDAP/basic_ldap_auth.cc squid-6.2/src/auth/basic/LDAP/basic_ldap_auth.cc
--- squid-6.1/src/auth/basic/LDAP/basic_ldap_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/LDAP/basic_ldap_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -126,7 +126,7 @@
 typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlA *, IN PLDAPControlA *);
 #endif /* LDAP_UNICODE */
 PFldap_start_tls_s Win32_ldap_start_tls_s;
-#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l,NULL,NULL,s,c)
+#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l, nullptr, nullptr,s,c)
 #endif /* LDAP_VERSION3 */
 
 #else
@@ -155,7 +155,7 @@
 static int noreferrals = 0;
 static int aliasderef = LDAP_DEREF_NEVER;
 #if defined(NETSCAPE_SSL)
-static const char *sslpath = NULL;
+static const char *sslpath = nullptr;
 static int sslinit = 0;
 #endif
 static int connect_timeout = 0;
@@ -275,7 +275,7 @@
 #endif
 #if NETSCAPE_SSL
         if (sslpath) {
-            if (!sslinit && (ldapssl_client_init(sslpath, NULL) != LDAP_SUCCESS)) {
+            if (!sslinit && (ldapssl_client_init(sslpath, nullptr) != LDAP_SUCCESS)) {
                 fprintf(stderr, "\nUnable to initialise SSL with cert path %s\n",
                         sslpath);
                 exit(EXIT_FAILURE);
diff -u -r -N squid-6.1/src/auth/basic/PAM/basic_pam_auth.cc squid-6.2/src/auth/basic/PAM/basic_pam_auth.cc
--- squid-6.1/src/auth/basic/PAM/basic_pam_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/PAM/basic_pam_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -97,7 +97,7 @@
 #endif
 
 #if _SQUID_SOLARIS_
-static char *password = NULL;   /* Workaround for Solaris 2.6 brokenness */
+static char *password = nullptr;   /* Workaround for Solaris 2.6 brokenness */
 #endif
 
 extern "C" int password_conversation(int num_msg, PAM_CONV_FUNC_CONST_PARM struct pam_message **msg,
@@ -160,7 +160,7 @@
 int
 main(int argc, char *argv[])
 {
-    pam_handle_t *pamh = NULL;
+    pam_handle_t *pamh = nullptr;
     int retval = PAM_SUCCESS;
     char *user;
     char *password_buf;
@@ -172,7 +172,7 @@
     int no_realm = 0;
 
     /* make standard output line buffered */
-    setvbuf(stdout, NULL, _IOLBF, 0);
+    setvbuf(stdout, nullptr, _IOLBF, 0);
 
     while (1) {
         int ch = getopt(argc, argv, "1n:t:or");
@@ -258,7 +258,7 @@
                 if (retval != PAM_SUCCESS) {
                     debug("WARNING: failed to release PAM authenticator\n");
                 }
-                pamh = NULL;
+                pamh = nullptr;
             }
             /* Initialize persistent PAM connection */
             retval = pam_start(service, "squid@", &conv, &pamh);
@@ -289,7 +289,7 @@
         retval = PAM_SUCCESS;
 #if defined(PAM_AUTHTOK)
         if (ttl != 0 && pamh) {
-            retval = pam_set_item(pamh, PAM_AUTHTOK, NULL);
+            retval = pam_set_item(pamh, PAM_AUTHTOK, nullptr);
         }
 #endif
         if (pamh && (ttl == 0 || retval != PAM_SUCCESS)) {
@@ -297,14 +297,14 @@
             if (retval != PAM_SUCCESS) {
                 debug("WARNING: failed to release PAM authenticator\n");
             }
-            pamh = NULL;
+            pamh = nullptr;
         }
     }
 
     if (pamh) {
         retval = pam_end(pamh, retval);
         if (retval != PAM_SUCCESS) {
-            pamh = NULL;
+            pamh = nullptr;
             debug("ERROR: failed to release PAM authenticator\n");
         }
     }
diff -u -r -N squid-6.1/src/auth/basic/POP3/basic_pop3_auth.8 squid-6.2/src/auth/basic/POP3/basic_pop3_auth.8
--- squid-6.1/src/auth/basic/POP3/basic_pop3_auth.8	2023-07-06 17:32:53.000000000 +1200
+++ squid-6.2/src/auth/basic/POP3/basic_pop3_auth.8	2023-08-07 07:39:23.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "BASIC_POP3_AUTH 8"
-.TH BASIC_POP3_AUTH 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH BASIC_POP3_AUTH 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/auth/basic/SASL/basic_sasl_auth.cc squid-6.2/src/auth/basic/SASL/basic_sasl_auth.cc
--- squid-6.1/src/auth/basic/SASL/basic_sasl_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/SASL/basic_sasl_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -71,7 +71,7 @@
     }
 
 #if SASL_VERSION_MAJOR < 2
-    rc = sasl_server_new( APP_NAME_SASL, NULL, NULL, NULL, 0, &conn );
+    rc = sasl_server_new( APP_NAME_SASL, nullptr, nullptr, nullptr, 0, &conn );
 #else
     rc = sasl_server_new( APP_NAME_SASL, nullptr, nullptr, nullptr, nullptr, nullptr, 0, &conn );
 #endif
@@ -114,8 +114,8 @@
                 debug("errstr %s\n", errstr);
             }
             if ( rc != SASL_BADAUTH ) {
-                debug("ERROR: %d %s\n", rc, sasl_errstring(rc, NULL, NULL));
-                SEND_ERR(sasl_errstring(rc, NULL, NULL));
+                debug("ERROR: %d %s\n", rc, sasl_errstring(rc, nullptr, nullptr));
+                SEND_ERR(sasl_errstring(rc, nullptr, nullptr));
             } else
 #endif
                 SEND_ERR("");
diff -u -r -N squid-6.1/src/auth/basic/SMB_LM/msntauth.cc squid-6.2/src/auth/basic/SMB_LM/msntauth.cc
--- squid-6.1/src/auth/basic/SMB_LM/msntauth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/SMB_LM/msntauth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -65,7 +65,7 @@
 {
     for (domaincontrollers_t::iterator dc = domaincontrollers.begin(); dc != domaincontrollers.end(); ++dc) {
         //std::cerr << "testing against " << dc->server << std::endl;
-        const int rv = Valid_User(username, password, dc->server.c_str(), NULL, dc->domain.c_str());
+        const int rv = Valid_User(username, password, dc->server.c_str(), nullptr, dc->domain.c_str());
         //std::cerr << "check result: " << rv << std::endl;
         if (rv == NTV_NO_ERROR)
             return true;
@@ -91,7 +91,7 @@
     int err = 0;
 
     openlog("basic_smb_lm_auth", LOG_PID, LOG_USER);
-    setbuf(stdout, NULL);
+    setbuf(stdout, nullptr);
 
     for (int j = 1; j < argc; ++j) {
         std::string arg = argv[j];
diff -u -r -N squid-6.1/src/auth/basic/SMB_LM/valid.cc squid-6.2/src/auth/basic/SMB_LM/valid.cc
--- squid-6.1/src/auth/basic/SMB_LM/valid.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/SMB_LM/valid.cc	2023-08-07 05:11:38.000000000 +1200
@@ -37,7 +37,7 @@
     SMB_Handle_Type con;
 
     SMB_Init();
-    con = SMB_Connect_Server(NULL, SERVER, DOMAIN);
+    con = SMB_Connect_Server(nullptr, SERVER, DOMAIN);
     if (con == NULL) {
         return (NTV_SERVER_ERROR);
     }
@@ -45,7 +45,7 @@
         SMB_Discon(con, 0);
         return (NTV_PROTOCOL_ERROR);
     }
-    if (SMB_Logon_Server(con, USERNAME, PASSWORD, NULL, 0) < 0) {
+    if (SMB_Logon_Server(con, USERNAME, PASSWORD, nullptr, 0) < 0) {
         SMB_Discon(con, 0);
         return (NTV_LOGON_ERROR);
     }
diff -u -r -N squid-6.1/src/auth/basic/SSPI/basic_sspi_auth.cc squid-6.2/src/auth/basic/SSPI/basic_sspi_auth.cc
--- squid-6.1/src/auth/basic/SSPI/basic_sspi_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/SSPI/basic_sspi_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -132,8 +132,8 @@
     atexit(UnloadSecurityDll);
 
     /* initialize FDescs */
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     while (fgets(wstr, HELPER_INPUT_BUFFER, stdin) != NULL) {
 
diff -u -r -N squid-6.1/src/auth/basic/SSPI/valid.cc squid-6.2/src/auth/basic/SSPI/valid.cc
--- squid-6.1/src/auth/basic/SSPI/valid.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/basic/SSPI/valid.cc	2023-08-07 05:11:38.000000000 +1200
@@ -64,7 +64,7 @@
     WCHAR wszUserName[256]; // Unicode user name
     WCHAR wszGroup[256];    // Unicode Group
 
-    LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
+    LPLOCALGROUP_USERS_INFO_0 pBuf = nullptr;
     LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
     DWORD dwLevel = 0;
     DWORD dwFlags = LG_INCLUDE_INDIRECT;
@@ -91,7 +91,7 @@
      * function should also return the names of the local
      * groups in which the user is indirectly a member.
      */
-    nStatus = NetUserGetLocalGroups(NULL,
+    nStatus = NetUserGetLocalGroups(nullptr,
                                     wszUserName,
                                     dwLevel,
                                     dwFlags,
@@ -130,7 +130,7 @@
     int result = NTV_SERVER_ERROR;
     size_t i;
     char NTDomain[256];
-    char *domain_qualify = NULL;
+    char *domain_qualify = nullptr;
     char DomainUser[256];
     char User[256];
 
diff -u -r -N squid-6.1/src/auth/digest/eDirectory/ldap_backend.cc squid-6.2/src/auth/digest/eDirectory/ldap_backend.cc
--- squid-6.1/src/auth/digest/eDirectory/ldap_backend.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/digest/eDirectory/ldap_backend.cc	2023-08-07 05:11:38.000000000 +1200
@@ -40,7 +40,7 @@
 typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlA *, IN PLDAPControlA *);
 #endif /* LDAP_UNICODE */
 PFldap_start_tls_s Win32_ldap_start_tls_s;
-#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l,NULL,NULL,s,c)
+#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l, nullptr, nullptr,s,c)
 #endif /* LDAP_VERSION3 */
 
 #else
@@ -72,7 +72,7 @@
 static int edir_universal_passwd = 0;
 static int aliasderef = LDAP_DEREF_NEVER;
 #if defined(NETSCAPE_SSL)
-static char *sslpath = NULL;
+static char *sslpath = nullptr;
 static int sslinit = 0;
 #endif
 static int connect_timeout = 0;
@@ -363,7 +363,7 @@
 #endif
 #if NETSCAPE_SSL
             if (sslpath) {
-                if (!sslinit && (ldapssl_client_init(sslpath, NULL) != LDAP_SUCCESS)) {
+                if (!sslinit && (ldapssl_client_init(sslpath, nullptr) != LDAP_SUCCESS)) {
                     fprintf(stderr, "\nUnable to initialise SSL with cert path %s\n",
                             sslpath);
                     exit(EXIT_FAILURE);
@@ -404,7 +404,7 @@
 #else
             fprintf(stderr, "TLS not supported with your LDAP library\n");
             ldap_unbind(ld);
-            ld = NULL;
+            ld = nullptr;
 #endif
         }
 #endif
diff -u -r -N squid-6.1/src/auth/digest/LDAP/ldap_backend.cc squid-6.2/src/auth/digest/LDAP/ldap_backend.cc
--- squid-6.1/src/auth/digest/LDAP/ldap_backend.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/digest/LDAP/ldap_backend.cc	2023-08-07 05:11:38.000000000 +1200
@@ -41,7 +41,7 @@
 typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlA *, IN PLDAPControlA *);
 #endif /* LDAP_UNICODE */
 PFldap_start_tls_s Win32_ldap_start_tls_s;
-#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l,NULL,NULL,s,c)
+#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l, nullptr, nullptr,s,c)
 #endif /* LDAP_VERSION3 */
 
 #else
@@ -72,7 +72,7 @@
 static int strip_nt_domain = 0;
 static int aliasderef = LDAP_DEREF_NEVER;
 #if defined(NETSCAPE_SSL)
-static char *sslpath = NULL;
+static char *sslpath = nullptr;
 static int sslinit = 0;
 #endif
 static int connect_timeout = 0;
@@ -334,7 +334,7 @@
 #endif
 #if NETSCAPE_SSL
             if (sslpath) {
-                if (!sslinit && (ldapssl_client_init(sslpath, NULL) != LDAP_SUCCESS)) {
+                if (!sslinit && (ldapssl_client_init(sslpath, nullptr) != LDAP_SUCCESS)) {
                     fprintf(stderr, "\nUnable to initialise SSL with cert path %s\n",
                             sslpath);
                     exit(EXIT_FAILURE);
@@ -377,7 +377,7 @@
 #else
             fprintf(stderr, "TLS not supported with your LDAP library\n");
             ldap_unbind(ld);
-            ld = NULL;
+            ld = nullptr;
 #endif
         }
 #endif
diff -u -r -N squid-6.1/src/auth/negotiate/kerberos/negotiate_kerberos_auth.cc squid-6.2/src/auth/negotiate/kerberos/negotiate_kerberos_auth.cc
--- squid-6.1/src/auth/negotiate/kerberos/negotiate_kerberos_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/negotiate/kerberos/negotiate_kerberos_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -887,8 +887,8 @@
 int
 main(int argc, char *const argv[])
 {
-    setbuf(stdout, NULL);
-    setbuf(stdin, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stdin, nullptr);
     char buf[MAX_AUTHTOKEN_LEN];
     while (1) {
         if (fgets(buf, sizeof(buf) - 1, stdin) == NULL) {
diff -u -r -N squid-6.1/src/auth/negotiate/SSPI/negotiate_sspi_auth.cc squid-6.2/src/auth/negotiate/SSPI/negotiate_sspi_auth.cc
--- squid-6.1/src/auth/negotiate/SSPI/negotiate_sspi_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/negotiate/SSPI/negotiate_sspi_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -82,7 +82,7 @@
  * -d enable debugging.
  * -v enable verbose Negotiate packet debugging.
  */
-char *my_program_name = NULL;
+char *my_program_name = nullptr;
 
 void
 usage()
@@ -242,12 +242,12 @@
         if (status == SSP_ERROR) {
             FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
                           FORMAT_MESSAGE_IGNORE_INSERTS,
-                          NULL,
+                          nullptr,
                           GetLastError(),
                           MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),    /* Default language */
                           (LPTSTR) & ErrorMessage,
                           0,
-                          NULL);
+                          nullptr);
             if (ErrorMessage[strlen(ErrorMessage) - 1] == '\n')
                 ErrorMessage[strlen(ErrorMessage) - 1] = '\0';
             if (ErrorMessage[strlen(ErrorMessage) - 1] == '\r')
@@ -313,8 +313,8 @@
     atexit(UnloadSecurityDll);
 
     /* initialize FDescs */
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     while (manage_request()) {
         /* everything is done within manage_request */
diff -u -r -N squid-6.1/src/auth/ntlm/SMB_LM/ntlm_smb_lm_auth.cc squid-6.2/src/auth/ntlm/SMB_LM/ntlm_smb_lm_auth.cc
--- squid-6.1/src/auth/ntlm/SMB_LM/ntlm_smb_lm_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/ntlm/SMB_LM/ntlm_smb_lm_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -92,7 +92,7 @@
 static unsigned char challenge[NTLM_NONCE_LEN];
 static unsigned char lmencoded_empty_pass[ENCODED_PASS_LEN],
        ntencoded_empty_pass[ENCODED_PASS_LEN];
-SMB_Handle_Type handle = NULL;
+SMB_Handle_Type handle = nullptr;
 int ntlm_errno;
 static char credentials[MAX_USERNAME_LEN+MAX_DOMAIN_LEN+2]; /* we can afford to waste */
 static char my_domain[100], my_domain_controller[100];
@@ -101,7 +101,7 @@
 char error_messages_buffer[NTLM_BLOB_BUFFER_SIZE];
 #endif
 char load_balance = 0, protocol_pedantic = 0;
-dc *controllers = NULL;
+dc *controllers = nullptr;
 int numcontrollers = 0;
 dc *current_dc;
 char smb_error_buffer[1000];
@@ -113,7 +113,7 @@
 {
     if (handle != NULL)
         SMB_Discon(handle, 0);
-    handle = NULL;
+    handle = nullptr;
 }
 
 int
@@ -126,7 +126,7 @@
 int
 is_dc_ok(char *domain, char *domain_controller)
 {
-    SMB_Handle_Type h = SMB_Connect_Server(NULL, domain_controller, domain);
+    SMB_Handle_Type h = SMB_Connect_Server(nullptr, domain_controller, domain);
     if (h == NULL)
         return 0;
     SMB_Discon(h, 0);
@@ -143,7 +143,7 @@
         return 0;
     }
     debug("Connecting to server %s domain %s\n", domain_controller, domain);
-    handle = SMB_Connect_Server(NULL, domain_controller, domain);
+    handle = SMB_Connect_Server(nullptr, domain_controller, domain);
     smberr = SMB_Get_Last_Error();
     SMB_Get_Error_Msg(smberr, errstr, 1000);
 
@@ -154,13 +154,13 @@
     if (SMB_Negotiate(handle, SMB_Prots) < 0) {     /* An error */
         debug("Error negotiating protocol with SMB Server\n");
         SMB_Discon(handle, 0);
-        handle = NULL;
+        handle = nullptr;
         return 2;
     }
     if (handle->Security == 0) {    /* share-level security, unusable */
         debug("SMB Server uses share-level security .. we need user security.\n");
         SMB_Discon(handle, 0);
-        handle = NULL;
+        handle = nullptr;
         return 3;
     }
     memcpy(challenge, handle->Encrypt_Key, NTLM_NONCE_LEN);
@@ -180,7 +180,7 @@
     my_domain_controller[sizeof(my_domain_controller)-1] = '\0';
 
     if (init_challenge(my_domain, my_domain_controller) > 0) {
-        return NULL;
+        return nullptr;
     }
 
     ntlm_challenge chal;
@@ -198,7 +198,7 @@
     static char b64buf[HELPER_INPUT_BUFFER-10]; /* 10 for other line fields, delimiters and terminator */
     if (base64_encode_len(len) < sizeof(b64buf)-1) {
         debug("base64 encoding of the token challenge will exceed %" PRIuSIZE " bytes", sizeof(b64buf));
-        return NULL;
+        return nullptr;
     }
 
     struct base64_encode_ctx ctx;
@@ -227,7 +227,7 @@
     if (handle == NULL) {   /*if null we aren't connected, but it shouldn't happen */
         debug("Weird, we've been disconnected\n");
         ntlm_errno = NTLM_ERR_NOT_CONNECTED;
-        return NULL;
+        return nullptr;
     }
 
     /*      debug("fetching domain\n"); */
@@ -235,12 +235,12 @@
     if (tmp.str == NULL || tmp.l == 0) {
         debug("No domain supplied. Returning no-auth\n");
         ntlm_errno = NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
     if (tmp.l > MAX_DOMAIN_LEN) {
         debug("Domain string exceeds %d bytes, rejecting\n", MAX_DOMAIN_LEN);
         ntlm_errno = NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
     memcpy(domain, tmp.str, tmp.l);
     user = domain + tmp.l;
@@ -252,12 +252,12 @@
     if (tmp.str == NULL || tmp.l == 0) {
         debug("No username supplied. Returning no-auth\n");
         ntlm_errno = NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
     if (tmp.l > MAX_USERNAME_LEN) {
         debug("Username string exceeds %d bytes, rejecting\n", MAX_USERNAME_LEN);
         ntlm_errno = NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
     memcpy(user, tmp.str, tmp.l);
     *(user + tmp.l) = '\0';
@@ -273,7 +273,7 @@
         if (len != ENCODED_PASS_LEN || offset + len > auth_length || offset == 0) {
             debug("LM response: insane data (pkt-sz: %d, fetch len: %d, offset: %d)\n", auth_length, len, offset);
             ntlm_errno = NTLM_ERR_LOGON;
-            return NULL;
+            return nullptr;
         }
         tmp.str = (char *)packet + offset;
         tmp.l = len;
@@ -281,7 +281,7 @@
     if (tmp.l > MAX_PASSWD_LEN) {
         debug("Password string exceeds %d bytes, rejecting\n", MAX_PASSWD_LEN);
         ntlm_errno = NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
 
     /* Authenticating against the NT response doesn't seem to work... in SMB LM helper. */
@@ -294,7 +294,7 @@
         fprintf(stderr,"Empty LM password supplied for user %s\\%s. "
                 "No-auth\n",domain,user);
         ntlm_errno=NTLM_ERR_LOGON;
-        return NULL;
+        return nullptr;
     }
 
     /* still fetch the NT response and check validity against empty password */
@@ -308,7 +308,7 @@
             if (len != ENCODED_PASS_LEN || offset + len > auth_length || offset == 0) {
                 debug("NT response: insane data (pkt-sz: %d, fetch len: %d, offset: %d)\n", auth_length, len, offset);
                 ntlm_errno = NTLM_ERR_LOGON;
-                return NULL;
+                return nullptr;
             }
             tmp.str = (char *)packet + offset;
             tmp.l = len;
@@ -318,7 +318,7 @@
             if (memcmp(tmp.str,lmencoded_empty_pass,ENCODED_PASS_LEN)==0) {
                 fprintf(stderr,"ERROR: Empty NT password supplied for user %s\\%s. No-auth\n", domain, user);
                 ntlm_errno = NTLM_ERR_LOGON;
-                return NULL;
+                return nullptr;
             }
         }
     }
@@ -330,7 +330,7 @@
 
     if (rv != NTLM_ERR_NONE) {  /* failed */
         ntlm_errno = rv;
-        return NULL;
+        return nullptr;
     }
     *(user - 1) = '\\';     /* hack. Performing, but ugly. */
 
@@ -357,7 +357,7 @@
  * -l last-ditch-mode
  * domain\controller ...
  */
-char *my_program_name = NULL;
+char *my_program_name = nullptr;
 
 void
 usage()
@@ -379,7 +379,7 @@
 process_options(int argc, char *argv[])
 {
     int opt, j, had_error = 0;
-    dc *new_dc = NULL, *last_dc = NULL;
+    dc *new_dc = nullptr, *last_dc = nullptr;
     while (-1 != (opt = getopt(argc, argv, "bfld"))) {
         switch (opt) {
         case 'b':
@@ -459,7 +459,7 @@
 obtain_challenge()
 {
     int j = 0;
-    const char *ch = NULL;
+    const char *ch = nullptr;
     for (j = 0; j < numcontrollers; ++j) {
         debug("obtain_challenge: selecting %s\\%s (attempt #%d)\n",
               current_dc->domain, current_dc->controller, j + 1);
@@ -489,7 +489,7 @@
         current_dc = current_dc->next;
     }
     /* all DCs failed. */
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -498,7 +498,7 @@
     ntlmhdr *fast_header;
     char buf[NTLM_BLOB_BUFFER_SIZE];
     char decoded[NTLM_BLOB_BUFFER_SIZE];
-    char *ch2, *cred = NULL;
+    char *ch2, *cred = nullptr;
 
     if (fgets(buf, NTLM_BLOB_BUFFER_SIZE, stdin) == NULL) {
         fprintf(stderr, "fgets() failed! dying..... errno=%d (%s)\n", errno,
@@ -674,8 +674,8 @@
     debug("options processed OK\n");
 
     /* initialize FDescs */
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     /* select the first domain controller we're going to use */
     current_dc = controllers;
diff -u -r -N squid-6.1/src/auth/ntlm/SSPI/ntlm_sspi_auth.cc squid-6.2/src/auth/ntlm/SSPI/ntlm_sspi_auth.cc
--- squid-6.1/src/auth/ntlm/SSPI/ntlm_sspi_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/auth/ntlm/SSPI/ntlm_sspi_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -110,7 +110,7 @@
     WCHAR wszUserName[UNLEN+1]; // Unicode user name
     WCHAR wszGroup[GNLEN+1];    // Unicode Group
 
-    LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
+    LPLOCALGROUP_USERS_INFO_0 pBuf = nullptr;
     LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
     DWORD dwLevel = 0;
     DWORD dwFlags = LG_INCLUDE_INDIRECT;
@@ -137,7 +137,7 @@
      * function should also return the names of the local
      * groups in which the user is indirectly a member.
      */
-    nStatus = NetUserGetLocalGroups(NULL,
+    nStatus = NetUserGetLocalGroups(nullptr,
                                     wszUserName,
                                     dwLevel,
                                     dwFlags,
@@ -181,10 +181,10 @@
     safe_free(target);
     target = (char *)xmalloc(len);
     if (target == NULL)
-        return NULL;
+        return nullptr;
 
     /* copy unicode buffer */
-    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, NULL, NULL );
+    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, nullptr, nullptr);
 
     /* add null termination */
     target[len-1] = '\0';
@@ -200,7 +200,7 @@
     PPOLICY_PRIMARY_DOMAIN_INFO ppdiDomainInfo;
     PWKSTA_INFO_100 pwkiWorkstationInfo;
     DWORD netret;
-    char * DomainName = NULL;
+    char * DomainName = nullptr;
 
     /*
      * Always initialize the object attributes to all zeroes.
@@ -214,7 +214,7 @@
      * The wki100_computername field contains a pointer to a UNICODE
      * string containing the local computer name.
      */
-    netret = NetWkstaGetInfo(NULL, 100, (LPBYTE *)&pwkiWorkstationInfo);
+    netret = NetWkstaGetInfo(nullptr, 100, (LPBYTE *)&pwkiWorkstationInfo);
     if (netret == NERR_Success) {
         /*
          * We have the workstation name in:
@@ -224,7 +224,7 @@
          * the LsaOpenPolicy function.
          */
         status = LsaOpenPolicy(
-                     NULL,
+                     nullptr,
                      &ObjectAttributes,
                      GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION,
                      &PolicyHandle
@@ -263,7 +263,7 @@
                      */
                     debug("Member of Domain %s\n",DomainName);
                 } else {
-                    DomainName = NULL;
+                    DomainName = nullptr;
                 }
             }
         }
@@ -357,7 +357,7 @@
   -A can specify a Windows Local Group name allowed to authenticate.
   -D can specify a Windows Local Group name not allowed to authenticate.
  */
-char *my_program_name = NULL;
+char *my_program_name = nullptr;
 
 void
 usage()
@@ -591,12 +591,12 @@
                         FORMAT_MESSAGE_ALLOCATE_BUFFER |
                         FORMAT_MESSAGE_FROM_SYSTEM |
                         FORMAT_MESSAGE_IGNORE_INSERTS,
-                        NULL,
+                        nullptr,
                         GetLastError(),
                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
                         (LPTSTR) &ErrorMessage,
                         0,
-                        NULL);
+                        nullptr);
                     if (ErrorMessage[strlen(ErrorMessage) - 1] == '\n')
                         ErrorMessage[strlen(ErrorMessage) - 1] = '\0';
                     if (ErrorMessage[strlen(ErrorMessage) - 1] == '\r')
@@ -648,8 +648,8 @@
     atexit(UnloadSecurityDll);
 
     /* initialize FDescs */
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
+    setbuf(stdout, nullptr);
+    setbuf(stderr, nullptr);
 
     while (manage_request()) {
         /* everything is done within manage_request */
diff -u -r -N squid-6.1/src/base/RandomUuid.cc squid-6.2/src/base/RandomUuid.cc
--- squid-6.1/src/base/RandomUuid.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/base/RandomUuid.cc	2023-08-07 05:11:38.000000000 +1200
@@ -15,6 +15,13 @@
 
 #include <iostream>
 
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
 static_assert(sizeof(RandomUuid) == 128/8, "RandomUuid has RFC 4122-prescribed 128-bit size");
 
 RandomUuid::RandomUuid()
diff -u -r -N squid-6.1/src/cache_cf.cc squid-6.2/src/cache_cf.cc
--- squid-6.1/src/cache_cf.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/cache_cf.cc	2023-08-07 05:11:38.000000000 +1200
@@ -320,7 +320,7 @@
     char* file = strwordtok(files, &saveptr);
     while (file != NULL) {
         error_count += parseOneConfigFile(file, depth);
-        file = strwordtok(NULL, &saveptr);
+        file = strwordtok(nullptr, &saveptr);
     }
 #endif /* HAVE_GLOB */
     return error_count;
diff -u -r -N squid-6.1/src/cf_gen.cc squid-6.2/src/cf_gen.cc
--- squid-6.1/src/cf_gen.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/cf_gen.cc	2023-08-07 05:11:38.000000000 +1200
@@ -515,7 +515,7 @@
         }
     }
 
-    fout << "    cfg_filename = NULL;" << std::endl <<
+    fout << "    cfg_filename = nullptr;" << std::endl <<
          "}" << std::endl << std::endl;
     return rc;
 }
@@ -555,7 +555,7 @@
             fout << "#endif" << std::endl;
     }
 
-    fout << "    cfg_filename = NULL;" << std::endl <<
+    fout << "    cfg_filename = nullptr;" << std::endl <<
          "}" << std::endl << std::endl;
 }
 
@@ -588,7 +588,7 @@
             fout << "#endif" << std::endl;
     }
 
-    fout << "    cfg_filename = NULL;" << std::endl <<
+    fout << "    cfg_filename = nullptr;" << std::endl <<
          "}" << std::endl << std::endl;
 }
 
@@ -615,7 +615,7 @@
         fout << "parse_" << type << "(&" << loc << (array_flag ? "[0]" : "") << ");";
     }
     fout << std::endl;
-    fout << "        cfg_directive = NULL;" << std::endl;
+    fout << "        cfg_directive = nullptr;" << std::endl;
     if (ifdef.size()) {
         fout <<
              "#else" << std::endl <<
@@ -651,7 +651,7 @@
          "\tchar\t*token;\n"
          "\tif ((token = strtok(buff, w_space)) == NULL) \n"
          "\t\treturn 1;\t/* ignore empty lines */\n"
-         "\tConfigParser::SetCfgLine(strtok(NULL, \"\"));\n";
+         "\tConfigParser::SetCfgLine(strtok(nullptr, \"\"));\n";
 
     for (const auto &e : head)
         e.genParse(fout);
diff -u -r -N squid-6.1/src/clients/FtpClient.h squid-6.2/src/clients/FtpClient.h
--- squid-6.1/src/clients/FtpClient.h	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/clients/FtpClient.h	2023-08-07 05:11:38.000000000 +1200
@@ -109,6 +109,8 @@
 /// FTP client functionality shared among FTP Gateway and Relay clients.
 class Client: public ::Client
 {
+    CBDATA_INTERMEDIATE();
+
 public:
     explicit Client(FwdState *fwdState);
     ~Client() override;
diff -u -r -N squid-6.1/src/client_side.cc squid-6.2/src/client_side.cc
--- squid-6.1/src/client_side.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/client_side.cc	2023-08-07 05:11:38.000000000 +1200
@@ -2120,7 +2120,7 @@
                                     repContext->http->uri,
                                     CachePeer,
                                     repContext->http->request,
-                                    inBuf, NULL);
+                                    inBuf, nullptr);
         context->pullData();
     } else {
         // close or otherwise we may get stuck as nobody will notice the error?
@@ -2817,7 +2817,7 @@
         debugs(33, 2, "Failed to generate TLS context for " << tlsConnectHostOrIp);
     }
 
-    // If generated ssl context = NULL, try to use static ssl context.
+    // If generated ssl context = nullptr, try to use static ssl context.
     if (!ctx) {
         if (!port->secure.staticContext) {
             debugs(83, DBG_IMPORTANT, "Closing " << clientConnection->remote << " as lacking TLS context");
diff -u -r -N squid-6.1/src/client_side_request.cc squid-6.2/src/client_side_request.cc
--- squid-6.1/src/client_side_request.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/client_side_request.cc	2023-08-07 05:11:38.000000000 +1200
@@ -532,7 +532,7 @@
                                 http->getConn() != nullptr && http->getConn()->getAuth() != nullptr ?
                                 http->getConn()->getAuth() : http->request->auth_user_request);
 #else
-                                NULL);
+                                nullptr);
 #endif
     node = (clientStreamNode *)http->client_stream.tail->data;
     clientStreamRead(node, http, node->readBuffer);
@@ -2057,8 +2057,13 @@
         bpc.checkIn();
     }
 
-    if (adaptedBodySource->exhausted())
+    if (adaptedBodySource->exhausted()) {
+        // XXX: Setting receivedWholeAdaptedReply here is a workaround for a
+        // regression, as described in https://bugs.squid-cache.org/show_bug.cgi?id=5187#c6
+        receivedWholeAdaptedReply = true;
+        debugs(85, DBG_IMPORTANT, "WARNING: Squid bug 5187 workaround triggered");
         endRequestSatisfaction();
+    }
     // else wait for more body data
 }
 
diff -u -r -N squid-6.1/src/clientStream.cc squid-6.2/src/clientStream.cc
--- squid-6.1/src/clientStream.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/clientStream.cc	2023-08-07 05:11:38.000000000 +1200
@@ -72,9 +72,9 @@
  *
  \code
    mycontext = thisObject->data;
-   thisObject->data = NULL;
+   thisObject->data = nullptr;
    delete thisObject->head;
-   mycontext = NULL;
+   mycontext = nullptr;
    return;
  \endcode
  *
diff -u -r -N squid-6.1/src/comm/ConnOpener.cc squid-6.2/src/comm/ConnOpener.cc
--- squid-6.1/src/comm/ConnOpener.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/comm/ConnOpener.cc	2023-08-07 05:11:38.000000000 +1200
@@ -227,7 +227,7 @@
     // "Select" state. It will not clear ours. XXX: It should always clear
     // because a callback may have been active but was called before comm_close
     // Update: we now do this in cleanFd()
-    // Comm::SetSelect(temporaryFd_, COMM_SELECT_WRITE, NULL, NULL, 0);
+    // Comm::SetSelect(temporaryFd_, COMM_SELECT_WRITE, nullptr, nullptr, 0);
 
     comm_close(temporaryFd_);
     temporaryFd_ = -1;
diff -u -r -N squid-6.1/src/comm/ModDevPoll.cc squid-6.2/src/comm/ModDevPoll.cc
--- squid-6.1/src/comm/ModDevPoll.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/comm/ModDevPoll.cc	2023-08-07 05:11:38.000000000 +1200
@@ -373,7 +373,7 @@
                     DEBUG_DEVPOLL ? 0 : 8,
                     "Calling read handler on FD " << fd
                 );
-                F->read_handler = NULL;
+                F->read_handler = nullptr;
                 hdl(fd, F->read_data);
                 ++ statCounter.select_fds;
             } else {
@@ -383,7 +383,7 @@
                     "no read handler for FD " << fd
                 );
                 // remove interest since no handler exist for this event.
-                SetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0);
+                SetSelect(fd, COMM_SELECT_READ, nullptr, nullptr, 0);
             }
         }
 
@@ -395,7 +395,7 @@
                     DEBUG_DEVPOLL ? 0 : 8,
                     "Calling write handler on FD " << fd
                 );
-                F->write_handler = NULL;
+                F->write_handler = nullptr;
                 hdl(fd, F->write_data);
                 ++ statCounter.select_fds;
             } else {
@@ -405,7 +405,7 @@
                     "no write handler for FD " << fd
                 );
                 // remove interest since no handler exist for this event.
-                SetSelect(fd, COMM_SELECT_WRITE, NULL, NULL, 0);
+                SetSelect(fd, COMM_SELECT_WRITE, nullptr, nullptr, 0);
             }
         }
     }
diff -u -r -N squid-6.1/src/comm/ModKqueue.cc squid-6.2/src/comm/ModKqueue.cc
--- squid-6.1/src/comm/ModKqueue.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/comm/ModKqueue.cc	2023-08-07 05:11:38.000000000 +1200
@@ -101,7 +101,7 @@
         if (kqoff == kqmax - 1) {
             int ret;
 
-            ret = kevent(kq, kqlst, kqmax, NULL, 0, &zero_timespec);
+            ret = kevent(kq, kqlst, kqmax, nullptr, 0, &zero_timespec);
             /* jdc -- someone needs to do error checking... */
 
             if (ret == -1) {
@@ -236,7 +236,7 @@
 
     for (i = 0; i < num; ++i) {
         int fd = (int) ke[i].ident;
-        PF *hdl = NULL;
+        PF *hdl = nullptr;
         fde *F = &fd_table[fd];
 
         if (ke[i].flags & EV_ERROR) {
@@ -247,14 +247,14 @@
 
         if (ke[i].filter == EVFILT_READ || F->flags.read_pending) {
             if ((hdl = F->read_handler) != NULL) {
-                F->read_handler = NULL;
+                F->read_handler = nullptr;
                 hdl(fd, F->read_data);
             }
         }
 
         if (ke[i].filter == EVFILT_WRITE) {
             if ((hdl = F->write_handler) != NULL) {
-                F->write_handler = NULL;
+                F->write_handler = nullptr;
                 hdl(fd, F->write_data);
             }
         }
diff -u -r -N squid-6.1/src/comm/ModSelectWin32.cc squid-6.2/src/comm/ModSelectWin32.cc
--- squid-6.1/src/comm/ModSelectWin32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/comm/ModSelectWin32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -179,7 +179,7 @@
     int i;
     int fd;
     int maxfd = 0;
-    PF *hdl = NULL;
+    PF *hdl = nullptr;
     fd_set read_mask;
     fd_set write_mask;
     FD_ZERO(&read_mask);
@@ -211,7 +211,7 @@
 
     ++ statCounter.syscalls.selects;
 
-    if (select(maxfd, &read_mask, &write_mask, NULL, &zero_tv) < 1)
+    if (select(maxfd, &read_mask, &write_mask, nullptr, &zero_tv) < 1)
         return incoming_sockets_accepted;
 
     for (i = 0; i < nfds; ++i) {
@@ -219,8 +219,8 @@
 
         if (FD_ISSET(fd, &read_mask)) {
             if ((hdl = fd_table[fd].read_handler) != NULL) {
-                fd_table[fd].read_handler = NULL;
-                commUpdateReadBits(fd, NULL);
+                fd_table[fd].read_handler = nullptr;
+                commUpdateReadBits(fd, nullptr);
                 hdl(fd, fd_table[fd].read_data);
             } else {
                 debugs(5, DBG_IMPORTANT, "comm_select_incoming: FD " << fd << " NULL read handler");
@@ -229,8 +229,8 @@
 
         if (FD_ISSET(fd, &write_mask)) {
             if ((hdl = fd_table[fd].write_handler) != NULL) {
-                fd_table[fd].write_handler = NULL;
-                commUpdateWriteBits(fd, NULL);
+                fd_table[fd].write_handler = nullptr;
+                commUpdateWriteBits(fd, nullptr);
                 hdl(fd, fd_table[fd].write_data);
             } else {
                 debugs(5, DBG_IMPORTANT, "comm_select_incoming: FD " << fd << " NULL write handler");
@@ -318,7 +318,7 @@
     fd_set pendingfds;
     fd_set writefds;
 
-    PF *hdl = NULL;
+    PF *hdl = nullptr;
     int fd;
     int maxfd;
     int num;
@@ -474,8 +474,8 @@
             debugs(5, 6, "comm_select: FD " << fd << " ready for reading");
 
             if ((hdl = F->read_handler)) {
-                F->read_handler = NULL;
-                commUpdateReadBits(fd, NULL);
+                F->read_handler = nullptr;
+                commUpdateReadBits(fd, nullptr);
                 hdl(fd, F->read_data);
                 ++ statCounter.select_fds;
 
@@ -504,8 +504,8 @@
                 F = &fd_table[fd];
 
                 if ((hdl = F->write_handler)) {
-                    F->write_handler = NULL;
-                    commUpdateWriteBits(fd, NULL);
+                    F->write_handler = nullptr;
+                    commUpdateWriteBits(fd, nullptr);
                     hdl(fd, F->write_data);
                     ++ statCounter.select_fds;
                 }
@@ -549,8 +549,8 @@
             debugs(5, 6, "comm_select: FD " << fd << " ready for writing");
 
             if ((hdl = F->write_handler)) {
-                F->write_handler = NULL;
-                commUpdateWriteBits(fd, NULL);
+                F->write_handler = nullptr;
+                commUpdateWriteBits(fd, nullptr);
                 hdl(fd, F->write_data);
                 ++ statCounter.select_fds;
 
@@ -657,8 +657,8 @@
     fd_set write_x;
 
     struct timeval tv;
-    AsyncCall::Pointer ch = NULL;
-    fde *F = NULL;
+    AsyncCall::Pointer ch = nullptr;
+    fde *F = nullptr;
 
     struct stat sb;
     debugs(5, DBG_CRITICAL, "examine_select: Examining open file descriptors...");
@@ -700,10 +700,10 @@
             ScheduleCallHere(F->timeoutHandler);
         }
 
-        F->closeHandler = NULL;
-        F->timeoutHandler = NULL;
-        F->read_handler = NULL;
-        F->write_handler = NULL;
+        F->closeHandler = nullptr;
+        F->timeoutHandler = nullptr;
+        F->read_handler = nullptr;
+        F->write_handler = nullptr;
         FD_CLR(fd, readfds);
         FD_CLR(fd, writefds);
     }
diff -u -r -N squid-6.1/src/debug/debug.cc squid-6.2/src/debug/debug.cc
--- squid-6.1/src/debug/debug.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/debug/debug.cc	2023-08-07 05:11:38.000000000 +1200
@@ -782,7 +782,7 @@
 
     if (!dbg_mutex) {
         HMODULE krnl_lib = GetModuleHandle("Kernel32");
-        PFInitializeCriticalSectionAndSpinCount InitializeCriticalSectionAndSpinCount = NULL;
+        PFInitializeCriticalSectionAndSpinCount InitializeCriticalSectionAndSpinCount = nullptr;
 
         if (krnl_lib)
             InitializeCriticalSectionAndSpinCount =
diff -u -r -N squid-6.1/src/DiskIO/AIO/AIODiskIOStrategy.cc squid-6.2/src/DiskIO/AIO/AIODiskIOStrategy.cc
--- squid-6.1/src/DiskIO/AIO/AIODiskIOStrategy.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/DiskIO/AIO/AIODiskIOStrategy.cc	2023-08-07 05:11:38.000000000 +1200
@@ -134,8 +134,8 @@
                 buf = aqe->aq_e_buf;
                 type = aqe->aq_e_type;
                 callback_valid = cbdataReferenceValidDone(aqe->aq_e_callback_data, &cbdata);
-                AIODiskFile * theFile = NULL;
-                void *theFileVoid = NULL;
+                AIODiskFile * theFile = nullptr;
+                void *theFileVoid = nullptr;
                 void *theTmpFile = aqe->theFile;
                 bool fileOk = cbdataReferenceValidDone(theTmpFile, &theFileVoid);
 
diff -u -r -N squid-6.1/src/DiskIO/AIO/aio_win32.cc squid-6.2/src/DiskIO/AIO/aio_win32.cc
--- squid-6.1/src/DiskIO/AIO/aio_win32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/DiskIO/AIO/aio_win32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -287,7 +287,7 @@
     if ((hndl = CreateFile(path,                    /* file name               */
                            dwDesiredAccess,         /* access mode             */
                            0,                       /* share mode              */
-                           NULL,                    /* SD                      */
+                           nullptr,                    /* SD                      */
                            dwCreationDisposition,   /* how to create           */
                            FILE_FLAG_OVERLAPPED,    /* file attributes         */
                            NULL                     /* handle to template file */
diff -u -r -N squid-6.1/src/DiskIO/DiskThreads/aiops_win32.cc squid-6.2/src/DiskIO/DiskThreads/aiops_win32.cc
--- squid-6.1/src/DiskIO/DiskThreads/aiops_win32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/DiskIO/DiskThreads/aiops_win32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -93,7 +93,7 @@
 static void squidaio_debug(squidaio_request_t *);
 static void squidaio_poll_queues(void);
 
-static squidaio_thread_t *threads = NULL;
+static squidaio_thread_t *threads = nullptr;
 static int squidaio_initialised = 0;
 
 #define AIO_LARGE_BUFS  16384
@@ -119,7 +119,7 @@
 
 request_queue2 = {
 
-    NULL, &request_queue2.head
+    nullptr, &request_queue2.head
 };
 static squidaio_request_queue_t done_queue;
 
@@ -129,7 +129,7 @@
 
 done_requests = {
 
-    NULL, &done_requests.head
+    nullptr, &done_requests.head
 };
 
 static HANDLE main_thread;
@@ -150,7 +150,7 @@
             return squidaio_large_bufs;
     }
 
-    return NULL;
+    return nullptr;
 }
 
 void *
@@ -218,22 +218,22 @@
     }
 
     /* Initialize request queue */
-    if ((request_queue.mutex = CreateMutex(NULL,    /* no inheritance */
+    if ((request_queue.mutex = CreateMutex(nullptr,    /* no inheritance */
                                            FALSE,   /* start unowned (as per mutex_init) */
-                                           NULL)    /* no name */
+                                           nullptr)    /* no name */
         ) == NULL) {
         fatal("Failed to create mutex");
     }
 
-    if ((request_queue.cond = CreateEvent(NULL,     /* no inheritance */
+    if ((request_queue.cond = CreateEvent(nullptr,     /* no inheritance */
                                           FALSE,    /* auto signal reset - which I think is pthreads like ? */
                                           FALSE,    /* start non signaled */
-                                          NULL)     /* no name */
+                                          nullptr)     /* no name */
         ) == NULL) {
         fatal("Failed to create condition variable");
     }
 
-    request_queue.head = NULL;
+    request_queue.head = nullptr;
 
     request_queue.tailp = &request_queue.head;
 
@@ -243,22 +243,22 @@
 
     /* Initialize done queue */
 
-    if ((done_queue.mutex = CreateMutex(NULL,  /* no inheritance */
+    if ((done_queue.mutex = CreateMutex(nullptr,  /* no inheritance */
                                         FALSE, /* start unowned (as per mutex_init) */
-                                        NULL)  /* no name */
+                                        nullptr)  /* no name */
         ) == NULL) {
         fatal("Failed to create mutex");
     }
 
-    if ((done_queue.cond = CreateEvent(NULL,  /* no inheritance */
+    if ((done_queue.cond = CreateEvent(nullptr,  /* no inheritance */
                                        TRUE,  /* manually signaled - which I think is pthreads like ? */
                                        FALSE, /* start non signaled */
-                                       NULL)  /* no name */
+                                       nullptr)  /* no name */
         ) == NULL) {
         fatal("Failed to create condition variable");
     }
 
-    done_queue.head = NULL;
+    done_queue.head = nullptr;
 
     done_queue.tailp = &done_queue.head;
 
@@ -278,12 +278,12 @@
     for (i = 0; i < NUMTHREADS; ++i) {
         threadp = (squidaio_thread_t *)squidaio_thread_pool->alloc();
         threadp->status = _THREAD_STARTING;
-        threadp->current_req = NULL;
+        threadp->current_req = nullptr;
         threadp->requests = 0;
         threadp->next = threads;
         threads = threadp;
 
-        if ((threadp->thread = CreateThread(NULL,                   /* no security attributes */
+        if ((threadp->thread = CreateThread(nullptr,                   /* no security attributes */
                                             0,                      /* use default stack size */
                                             squidaio_thread_loop,   /* thread function */
                                             threadp,                /* argument to thread function */
@@ -392,8 +392,8 @@
 
     while (1) {
         DWORD rv;
-        threadp->current_req = request = NULL;
-        request = NULL;
+        threadp->current_req = request = nullptr;
+        request = nullptr;
         /* Get a request to process */
         threadp->status = _THREAD_WAITING;
 
@@ -451,7 +451,7 @@
         /* process the request */
         threadp->status = _THREAD_BUSY;
 
-        request->next = NULL;
+        request->next = nullptr;
 
         threadp->current_req = request;
 
@@ -540,7 +540,7 @@
     request_queue_len += 1;
     request->resultp->_data = request;
     /* Play some tricks with the request_queue2 queue */
-    request->next = NULL;
+    request->next = nullptr;
 
     if (WaitForSingleObject(request_queue.mutex, 0) == WAIT_OBJECT_0) {
         if (request_queue2.head) {
@@ -566,7 +566,7 @@
 
         if (request_queue2.head) {
             /* Clear queue of blocked requests */
-            request_queue2.head = NULL;
+            request_queue2.head = nullptr;
             request_queue2.tailp = &request_queue2.head;
         }
     } else {
@@ -699,8 +699,8 @@
     if (request && request->resultp == resultp) {
         debugs(43, 9, "squidaio_cancel: " << request << " type=" << request->request_type << " result=" << request->resultp);
         request->cancelled = 1;
-        request->resultp = NULL;
-        resultp->_data = NULL;
+        request->resultp = nullptr;
+        resultp->_data = nullptr;
         resultp->result_type = _AIO_OP_NONE;
         return 0;
     }
@@ -778,7 +778,7 @@
     lseek(requestp->fd, requestp->offset, requestp->whence);
 
     if (!ReadFile((HANDLE)_get_osfhandle(requestp->fd), requestp->bufferp,
-                  requestp->buflen, (LPDWORD)&requestp->ret, NULL)) {
+                  requestp->buflen, (LPDWORD)&requestp->ret, nullptr)) {
         WIN32_maperror(GetLastError());
         requestp->ret = -1;
     }
@@ -820,7 +820,7 @@
 squidaio_do_write(squidaio_request_t * requestp)
 {
     if (!WriteFile((HANDLE)_get_osfhandle(requestp->fd), requestp->bufferp,
-                   requestp->buflen, (LPDWORD)&requestp->ret, NULL)) {
+                   requestp->buflen, (LPDWORD)&requestp->ret, nullptr)) {
         WIN32_maperror(GetLastError());
         requestp->ret = -1;
     }
@@ -968,7 +968,7 @@
         }
 
         Sleep(0);
-        request_queue2.head = NULL;
+        request_queue2.head = nullptr;
         request_queue2.tailp = &request_queue2.head;
     }
 
@@ -977,7 +977,7 @@
             (WaitForSingleObject(done_queue.mutex, 0)==WAIT_OBJECT_0)) {
 
         struct squidaio_request_t *requests = done_queue.head;
-        done_queue.head = NULL;
+        done_queue.head = nullptr;
         done_queue.tailp = &done_queue.head;
 
         if (!ReleaseMutex(done_queue.mutex)) {
@@ -1016,7 +1016,7 @@
     }
 
     if (!request) {
-        return NULL;
+        return nullptr;
     }
 
     debugs(43, 9, "squidaio_poll_done: " << request << " type=" << request->request_type << " result=" << request->resultp);
diff -u -r -N squid-6.1/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc squid-6.2/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc
--- squid-6.1/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc	2023-08-07 05:11:38.000000000 +1200
@@ -67,7 +67,7 @@
 
 #else
 
-    openDone(fd, NULL, fd, 0);
+    openDone(fd, nullptr, fd, 0);
 
 #endif
 }
@@ -116,7 +116,7 @@
 
 #else
 
-    openDone (fd, NULL, fd, 0);
+    openDone (fd, nullptr, fd, 0);
 
 #endif
 }
diff -u -r -N squid-6.1/src/dns_internal.cc squid-6.2/src/dns_internal.cc
--- squid-6.1/src/dns_internal.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/dns_internal.cc	2023-08-07 05:11:38.000000000 +1200
@@ -496,26 +496,26 @@
         DWORD Type = 0;
         DWORD Size = 0;
         LONG Result;
-        Result = RegQueryValueEx(hndKey, "Domain", NULL, &Type, NULL, &Size);
+        Result = RegQueryValueEx(hndKey, "Domain", nullptr, &Type, nullptr, &Size);
 
         if (Result == ERROR_SUCCESS && Size) {
             t = (char *) xmalloc(Size);
-            RegQueryValueEx(hndKey, "Domain", NULL, &Type, (LPBYTE) t, &Size);
+            RegQueryValueEx(hndKey, "Domain", nullptr, &Type, (LPBYTE) t, &Size);
             debugs(78, DBG_IMPORTANT, "Adding domain " << t << " from Registry");
             idnsAddPathComponent(t);
             xfree(t);
         }
-        Result = RegQueryValueEx(hndKey, "SearchList", NULL, &Type, NULL, &Size);
+        Result = RegQueryValueEx(hndKey, "SearchList", nullptr, &Type, nullptr, &Size);
 
         if (Result == ERROR_SUCCESS && Size) {
             t = (char *) xmalloc(Size);
-            RegQueryValueEx(hndKey, "SearchList", NULL, &Type, (LPBYTE) t, &Size);
+            RegQueryValueEx(hndKey, "SearchList", nullptr, &Type, (LPBYTE) t, &Size);
             token = strtok(t, Separator);
 
             while (token) {
                 idnsAddPathComponent(token);
                 debugs(78, DBG_IMPORTANT, "Adding domain " << token << " from Registry");
-                token = strtok(NULL, Separator);
+                token = strtok(nullptr, Separator);
             }
             xfree(t);
         }
@@ -546,34 +546,34 @@
             DWORD Type = 0;
             DWORD Size = 0;
             LONG Result;
-            Result = RegQueryValueEx(hndKey, "DhcpNameServer", NULL, &Type, NULL, &Size);
+            Result = RegQueryValueEx(hndKey, "DhcpNameServer", nullptr, &Type, nullptr, &Size);
 
             if (Result == ERROR_SUCCESS && Size) {
                 t = (char *) xmalloc(Size);
-                RegQueryValueEx(hndKey, "DhcpNameServer", NULL, &Type, (LPBYTE) t, &Size);
+                RegQueryValueEx(hndKey, "DhcpNameServer", nullptr, &Type, (LPBYTE) t, &Size);
                 token = strtok(t, ", ");
 
                 while (token) {
                     idnsAddNameserver(token);
                     result = true;
                     debugs(78, DBG_IMPORTANT, "Adding DHCP nameserver " << token << " from Registry");
-                    token = strtok(NULL, ",");
+                    token = strtok(nullptr, ",");
                 }
                 xfree(t);
             }
 
-            Result = RegQueryValueEx(hndKey, "NameServer", NULL, &Type, NULL, &Size);
+            Result = RegQueryValueEx(hndKey, "NameServer", nullptr, &Type, nullptr, &Size);
 
             if (Result == ERROR_SUCCESS && Size) {
                 t = (char *) xmalloc(Size);
-                RegQueryValueEx(hndKey, "NameServer", NULL, &Type, (LPBYTE) t, &Size);
+                RegQueryValueEx(hndKey, "NameServer", nullptr, &Type, (LPBYTE) t, &Size);
                 token = strtok(t, ", ");
 
                 while (token) {
                     debugs(78, DBG_IMPORTANT, "Adding nameserver " << token << " from Registry");
                     idnsAddNameserver(token);
                     result = true;
-                    token = strtok(NULL, ", ");
+                    token = strtok(nullptr, ", ");
                 }
                 xfree(t);
             }
@@ -603,12 +603,12 @@
             char *keyname;
             FILETIME ftLastWriteTime;
 
-            if (RegQueryInfoKey(hndKey, NULL, NULL, NULL, &InterfacesCount, &MaxSubkeyLen, NULL, NULL, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) {
+            if (RegQueryInfoKey(hndKey, nullptr, nullptr, nullptr, &InterfacesCount, &MaxSubkeyLen, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr) == ERROR_SUCCESS) {
                 keyname = (char *) xmalloc(++MaxSubkeyLen);
                 for (i = 0; i < (int) InterfacesCount; ++i) {
                     DWORD j;
                     j = MaxSubkeyLen;
-                    if (RegEnumKeyEx(hndKey, i, keyname, &j, NULL, NULL, NULL, &ftLastWriteTime) == ERROR_SUCCESS) {
+                    if (RegEnumKeyEx(hndKey, i, keyname, &j, nullptr, nullptr, nullptr, &ftLastWriteTime) == ERROR_SUCCESS) {
                         char *newkeyname;
                         newkeyname = (char *) xmalloc(sizeof(REG_TCPIP_PARA_INTERFACES) + j + 2);
                         strcpy(newkeyname, REG_TCPIP_PARA_INTERFACES);
@@ -618,30 +618,30 @@
                             DWORD Type = 0;
                             DWORD Size = 0;
                             LONG Result;
-                            Result = RegQueryValueEx(hndKey2, "DhcpNameServer", NULL, &Type, NULL, &Size);
+                            Result = RegQueryValueEx(hndKey2, "DhcpNameServer", nullptr, &Type, nullptr, &Size);
                             if (Result == ERROR_SUCCESS && Size) {
                                 t = (char *) xmalloc(Size);
-                                RegQueryValueEx(hndKey2, "DhcpNameServer", NULL, &Type, (LPBYTE)t, &Size);
+                                RegQueryValueEx(hndKey2, "DhcpNameServer", nullptr, &Type, (LPBYTE)t, &Size);
                                 token = strtok(t, ", ");
                                 while (token) {
                                     debugs(78, DBG_IMPORTANT, "Adding DHCP nameserver " << token << " from Registry");
                                     idnsAddNameserver(token);
                                     result = true;
-                                    token = strtok(NULL, ", ");
+                                    token = strtok(nullptr, ", ");
                                 }
                                 xfree(t);
                             }
 
-                            Result = RegQueryValueEx(hndKey2, "NameServer", NULL, &Type, NULL, &Size);
+                            Result = RegQueryValueEx(hndKey2, "NameServer", nullptr, &Type, nullptr, &Size);
                             if (Result == ERROR_SUCCESS && Size) {
                                 t = (char *) xmalloc(Size);
-                                RegQueryValueEx(hndKey2, "NameServer", NULL, &Type, (LPBYTE)t, &Size);
+                                RegQueryValueEx(hndKey2, "NameServer", nullptr, &Type, (LPBYTE)t, &Size);
                                 token = strtok(t, ", ");
                                 while (token) {
                                     debugs(78, DBG_IMPORTANT, "Adding nameserver " << token << " from Registry");
                                     idnsAddNameserver(token);
                                     result = true;
-                                    token = strtok(NULL, ", ");
+                                    token = strtok(nullptr, ", ");
                                 }
 
                                 xfree(t);
@@ -675,18 +675,18 @@
             DWORD Type = 0;
             DWORD Size = 0;
             LONG Result;
-            Result = RegQueryValueEx(hndKey, "NameServer", NULL, &Type, NULL, &Size);
+            Result = RegQueryValueEx(hndKey, "NameServer", nullptr, &Type, nullptr, &Size);
 
             if (Result == ERROR_SUCCESS && Size) {
                 t = (char *) xmalloc(Size);
-                RegQueryValueEx(hndKey, "NameServer", NULL, &Type, (LPBYTE) t, &Size);
+                RegQueryValueEx(hndKey, "NameServer", nullptr, &Type, (LPBYTE) t, &Size);
                 token = strtok(t, ", ");
 
                 while (token) {
                     debugs(78, DBG_IMPORTANT, "Adding nameserver " << token << " from Registry");
                     idnsAddNameserver(token);
                     result = true;
-                    token = strtok(NULL, ", ");
+                    token = strtok(nullptr, ", ");
                 }
                 xfree(t);
             }
diff -u -r -N squid-6.1/src/eui/Eui48.cc squid-6.2/src/eui/Eui48.cc
--- squid-6.1/src/eui/Eui48.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/eui/Eui48.cc	2023-08-07 05:11:38.000000000 +1200
@@ -377,7 +377,7 @@
     mib[5] = RTF_LLINFO;
 #endif
 
-    if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) {
+    if (sysctl(mib, 6, nullptr, &needed, nullptr, 0) < 0) {
         debugs(28, DBG_CRITICAL, "ERROR: Cannot estimate ARP table size!");
         clear();
         return false;
@@ -389,7 +389,7 @@
         return false;
     }
 
-    if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {
+    if (sysctl(mib, 6, buf, &needed, nullptr, 0) < 0) {
         debugs(28, DBG_CRITICAL, "ERROR: Cannot retrieve ARP table!");
         xfree(buf);
         clear();
@@ -446,7 +446,7 @@
 
     DWORD           ipNetTableLen = 0;
 
-    PMIB_IPNETTABLE NetTable = NULL;
+    PMIB_IPNETTABLE NetTable = nullptr;
 
     DWORD            i;
 
diff -u -r -N squid-6.1/src/fs_io.cc squid-6.2/src/fs_io.cc
--- squid-6.1/src/fs_io.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/fs_io.cc	2023-08-07 05:11:38.000000000 +1200
@@ -89,7 +89,7 @@
          * open files, so we won't allow delayed close.
          */
         while (!diskWriteIsComplete(fd))
-            diskHandleWrite(fd, NULL);
+            diskHandleWrite(fd, nullptr);
 #else
         F->flags.close_request = true;
         debugs(6, 2, "file_close: FD " << fd << ", delaying close");
diff -u -r -N squid-6.1/src/http/url_rewriters/LFS/url_lfs_rewrite.8 squid-6.2/src/http/url_rewriters/LFS/url_lfs_rewrite.8
--- squid-6.1/src/http/url_rewriters/LFS/url_lfs_rewrite.8	2023-07-06 17:32:54.000000000 +1200
+++ squid-6.2/src/http/url_rewriters/LFS/url_lfs_rewrite.8	2023-08-07 07:39:24.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "URL_LFS_REWRITE 8"
-.TH URL_LFS_REWRITE 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH URL_LFS_REWRITE 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/icmp/Icmp6.cc squid-6.2/src/icmp/Icmp6.cc
--- squid-6.1/src/icmp/Icmp6.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/icmp/Icmp6.cc	2023-08-07 05:11:38.000000000 +1200
@@ -197,7 +197,7 @@
 {
     int n;
     struct addrinfo *from = nullptr;
-//    struct ip6_hdr *ip = NULL;
+//    struct ip6_hdr *ip = nullptr;
     static char *pkt = nullptr;
     struct icmp6_hdr *icmp6header = nullptr;
     icmpEchoData *echo = nullptr;
diff -u -r -N squid-6.1/src/icmp/net_db.cc squid-6.2/src/icmp/net_db.cc
--- squid-6.1/src/icmp/net_db.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/icmp/net_db.cc	2023-08-07 05:11:38.000000000 +1200
@@ -1245,7 +1245,7 @@
     memFree(buf, MEM_4K_BUF);
 #else
 
-    reply->setHeaders(Http::scBadRequest, "Bad Request", NULL, -1, squid_curtime, -2);
+    reply->setHeaders(Http::scBadRequest, "Bad Request", nullptr, -1, squid_curtime, -2);
     s->replaceHttpReply(reply);
     storeAppendPrintf(s, "NETDB support not compiled into this Squid cache.\n");
 #endif
diff -u -r -N squid-6.1/src/ipc/mem/Segment.cc squid-6.2/src/ipc/mem/Segment.cc
--- squid-6.1/src/ipc/mem/Segment.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/ipc/mem/Segment.cc	2023-08-07 05:11:38.000000000 +1200
@@ -312,7 +312,7 @@
 {
     if (doUnlink) {
         delete [] static_cast<char *>(theMem);
-        theMem = NULL;
+        theMem = nullptr;
         Segments.erase(theName);
         debugs(54, 3, "unlinked " << theName << " fake segment");
     }
diff -u -r -N squid-6.1/src/ipc_win32.cc squid-6.2/src/ipc_win32.cc
--- squid-6.1/src/ipc_win32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/ipc_win32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -103,8 +103,8 @@
     pid_t pid;
 
     Ip::Address tmp_addr;
-    struct addrinfo *aiCS = NULL;
-    struct addrinfo *aiPS = NULL;
+    struct addrinfo *aiCS = nullptr;
+    struct addrinfo *aiPS = nullptr;
 
     int crfd = -1;
     int prfd = -1;
@@ -121,7 +121,7 @@
         *wfd = -1;
 
     if (hIpc)
-        *hIpc = NULL;
+        *hIpc = nullptr;
 
     if (WIN32_OS_version != _WIN_OS_WINNT) {
         getsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE, (char *) &opt, &optlen);
@@ -239,7 +239,7 @@
 
     params.args = (char **) args;
 
-    thread = _beginthreadex(NULL, 0, ipc_thread_1, &params, 0, NULL);
+    thread = _beginthreadex(nullptr, 0, ipc_thread_1, &params, 0, nullptr);
 
     if (thread == 0) {
         int xerrno = errno;
@@ -350,7 +350,7 @@
     int t1, t2, t3, retval = -1;
     int p2c[2] = {-1, -1};
     int c2p[2] = {-1, -1};
-    HANDLE hProcess = NULL, thread = NULL;
+    HANDLE hProcess = nullptr, thread = nullptr;
     pid_t pid = -1;
 
     struct thread_params thread_params;
@@ -361,12 +361,12 @@
     PROCESS_INFORMATION pi;
     long F;
     int prfd_ipc = -1, pwfd_ipc = -1, crfd_ipc = -1, cwfd_ipc = -1;
-    char *prog = NULL, *buf1 = NULL;
+    char *prog = nullptr, *buf1 = nullptr;
 
     Ip::Address PS_ipc;
     Ip::Address CS_ipc;
-    struct addrinfo *aiPS_ipc = NULL;
-    struct addrinfo *aiCS_ipc = NULL;
+    struct addrinfo *aiPS_ipc = nullptr;
+    struct addrinfo *aiCS_ipc = nullptr;
 
     struct ipc_params *params = (struct ipc_params *) in_params;
     int type = params->type;
@@ -393,7 +393,7 @@
     if (type == IPC_TCP_SOCKET) {
         debugs(54, 3, "ipcCreate: calling accept on FD " << crfd);
 
-        if ((fd = accept(crfd, NULL, NULL)) < 0) {
+        if ((fd = accept(crfd, nullptr, nullptr)) < 0) {
             int xerrno = errno;
             debugs(54, DBG_CRITICAL, "ipcCreate: FD " << crfd << " accept: " << xstrerr(xerrno));
             goto cleanup;
@@ -557,7 +557,7 @@
     do {
         strcat(buf1, str);
         strcat(buf1, " ");
-    } while ((str = strtok(NULL, w_space)));
+    } while ((str = strtok(nullptr, w_space)));
 
     x = 1;
 
@@ -567,8 +567,8 @@
         strcat(buf1, " ");
     }
 
-    if (CreateProcess(buf1 + 4096, buf1, NULL, NULL, TRUE, CREATE_NO_WINDOW,
-                      NULL, NULL, &si, &pi)) {
+    if (CreateProcess(buf1 + 4096, buf1, nullptr, nullptr, TRUE, CREATE_NO_WINDOW,
+                      nullptr, nullptr, &si, &pi)) {
         pid = pi.dwProcessId;
         hProcess = pi.hProcess;
     } else {
@@ -687,7 +687,7 @@
     else
         thread_params.rfd = prfd_ipc;
 
-    thread = (HANDLE)_beginthreadex(NULL, 0, ipc_thread_2, &thread_params, 0, NULL);
+    thread = (HANDLE)_beginthreadex(nullptr, 0, ipc_thread_2, &thread_params, 0, nullptr);
 
     if (!thread) {
         int xerrno = errno;
diff -u -r -N squid-6.1/src/log/access_log.cc squid-6.2/src/log/access_log.cc
--- squid-6.1/src/log/access_log.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/log/access_log.cc	2023-08-07 05:11:38.000000000 +1200
@@ -44,7 +44,7 @@
 #include <unordered_map>
 
 #if HEADERS_LOG
-static Logfile *headerslog = NULL;
+static Logfile *headerslog = nullptr;
 #endif
 
 #if MULTICAST_MISS_STREAM
@@ -214,7 +214,7 @@
 
     logfileClose(headerslog);
 
-    headerslog = NULL;
+    headerslog = nullptr;
 
 #endif
 }
@@ -544,7 +544,7 @@
     if (0 == pq) {
         /* reply */
         rep = data;
-        req = NULL;
+        req = nullptr;
         magic = 0x0050;
         hmask = rep->header.mask;
 
@@ -553,7 +553,7 @@
     } else {
         /* request */
         req = data;
-        rep = NULL;
+        rep = nullptr;
         magic = 0x0051;
         hmask = req->header.mask;
 
diff -u -r -N squid-6.1/src/log/DB/log_db_daemon.8 squid-6.2/src/log/DB/log_db_daemon.8
--- squid-6.1/src/log/DB/log_db_daemon.8	2023-07-06 17:32:54.000000000 +1200
+++ squid-6.2/src/log/DB/log_db_daemon.8	2023-08-07 07:39:24.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "LOG_DB_DAEMON 8"
-.TH LOG_DB_DAEMON 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH LOG_DB_DAEMON 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/main.cc squid-6.2/src/main.cc
--- squid-6.1/src/main.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/main.cc	2023-08-07 05:11:38.000000000 +1200
@@ -1877,7 +1877,7 @@
 #ifdef TIOCNOTTY
 
     if ((i = open("/dev/tty", O_RDWR | O_TEXT)) >= 0) {
-        ioctl(i, TIOCNOTTY, NULL);
+        ioctl(i, TIOCNOTTY, nullptr);
         close(i);
     }
 
diff -u -r -N squid-6.1/src/pconn.cc squid-6.2/src/pconn.cc
--- squid-6.1/src/pconn.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/pconn.cc	2023-08-07 05:11:38.000000000 +1200
@@ -25,7 +25,7 @@
 
 #define PCONN_FDS_SZ    8   /* pconn set size, increase for better memcache hit rate */
 
-//TODO: re-attach to MemPools. WAS: static Mem::Allocator *pconn_fds_pool = NULL;
+//TODO: re-attach to MemPools. WAS: static Mem::Allocator *pconn_fds_pool = nullptr;
 PconnModule * PconnModule::instance = nullptr;
 CBDATA_CLASS_INIT(IdleConnList);
 
diff -u -r -N squid-6.1/src/peer_digest.cc squid-6.2/src/peer_digest.cc
--- squid-6.1/src/peer_digest.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/peer_digest.cc	2023-08-07 05:11:38.000000000 +1200
@@ -540,7 +540,7 @@
 
             /* preserve request -- we need its size to update counters */
             /* requestUnlink(r); */
-            /* fetch->entry->mem_obj->request = NULL; */
+            /* fetch->entry->mem_obj->request = nullptr; */
         } else if (status == Http::scOkay) {
             /* get rid of old entry if any */
 
diff -u -r -N squid-6.1/src/peer_proxy_negotiate_auth.cc squid-6.2/src/peer_proxy_negotiate_auth.cc
--- squid-6.1/src/peer_proxy_negotiate_auth.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/peer_proxy_negotiate_auth.cc	2023-08-07 05:11:38.000000000 +1200
@@ -75,7 +75,7 @@
 #if USE_IBM_KERBEROS
 #include <ibm_svc/krb5_svc.h>
 const char *KRB5_CALLCONV error_message(long code) {
-    char *msg = NULL;
+    char *msg = nullptr;
     krb5_svc_get_msg(code, &msg);
     return msg;
 }
@@ -251,7 +251,7 @@
             code =
                 krb5_make_principal(kparam.context, &creds2.server,
                                     (krb5_const_realm)&client_realm, KRB5_TGS_NAME,
-                                    (krb5_const_realm)&client_realm, NULL);
+                                    (krb5_const_realm)&client_realm, nullptr);
             if (code) {
                 debugs(11, 5,
                        "Error while getting krbtgt principal : " <<
@@ -259,8 +259,8 @@
                 return (1);
             }
             code =
-                krb5_get_kdc_cred(kparam.context, kparam.cc, flags, NULL,
-                                  NULL, &creds2, &creds);
+                krb5_get_kdc_cred(kparam.context, kparam.cc, flags, nullptr,
+                                  nullptr, &creds2, &creds);
             krb5_free_creds(kparam.context, &creds2);
 #endif
             if (code) {
@@ -418,7 +418,7 @@
         krb5_get_init_creds_opt_set_renew_life(&options, rlife);
         code =
             krb5_get_init_creds_keytab(kparam.context, creds, principal,
-                                       keytab, 0, NULL, &options);
+                                       keytab, 0, nullptr, &options);
 #endif
         if (code) {
             debugs(11, 5,
diff -u -r -N squid-6.1/src/redirect.cc squid-6.2/src/redirect.cc
--- squid-6.1/src/redirect.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/redirect.cc	2023-08-07 05:11:38.000000000 +1200
@@ -267,7 +267,7 @@
                                     http->getConn() != nullptr && http->getConn()->getAuth() != nullptr ?
                                     http->getConn()->getAuth() : http->request->auth_user_request);
 #else
-                                    NULL);
+                                    nullptr);
 #endif
 
         node = (clientStreamNode *)http->client_stream.tail->data;
diff -u -r -N squid-6.1/src/security/cert_generators/file/certificate_db.cc squid-6.2/src/security/cert_generators/file/certificate_db.cc
--- squid-6.1/src/security/cert_generators/file/certificate_db.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/security/cert_generators/file/certificate_db.cc	2023-08-07 05:11:38.000000000 +1200
@@ -49,7 +49,7 @@
 {
 
 #if _SQUID_WINDOWS_
-    hFile = CreateFile(TEXT(filename.c_str()), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    hFile = CreateFile(TEXT(filename.c_str()), GENERIC_READ, 0, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
     if (hFile == INVALID_HANDLE_VALUE)
 #else
     fd = open(filename.c_str(), O_RDWR);
diff -u -r -N squid-6.1/src/security/cert_validators/fake/security_fake_certverify.8 squid-6.2/src/security/cert_validators/fake/security_fake_certverify.8
--- squid-6.1/src/security/cert_validators/fake/security_fake_certverify.8	2023-07-06 17:32:55.000000000 +1200
+++ squid-6.2/src/security/cert_validators/fake/security_fake_certverify.8	2023-08-07 07:39:25.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SECURITY_FAKE_CERTVERIFY 8"
-.TH SECURITY_FAKE_CERTVERIFY 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH SECURITY_FAKE_CERTVERIFY 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/ssl/bio.cc squid-6.2/src/ssl/bio.cc
--- squid-6.1/src/ssl/bio.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/ssl/bio.cc	2023-08-07 05:11:38.000000000 +1200
@@ -50,7 +50,7 @@
     squid_bio_write,
     squid_bio_read,
     squid_bio_puts,
-    NULL, // squid_bio_gets not supported
+    nullptr, // squid_bio_gets not supported
     squid_bio_ctrl,
     squid_bio_create,
     squid_bio_destroy,
diff -u -r -N squid-6.1/src/ssl/support.cc squid-6.2/src/ssl/support.cc
--- squid-6.1/src/ssl/support.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/ssl/support.cc	2023-08-07 05:11:38.000000000 +1200
@@ -148,17 +148,17 @@
 
     default:
         debugs(83, DBG_IMPORTANT, "ERROR: ssl_temp_rsa_cb: Unexpected key length " << keylen);
-        return NULL;
+        return nullptr;
     }
 
     if (rsa == NULL) {
         debugs(83, DBG_IMPORTANT, "ERROR: ssl_temp_rsa_cb: Failed to generate key " << keylen);
-        return NULL;
+        return nullptr;
     }
 
     if (newkey) {
         if (Debug::Enabled(83, 5))
-            PEM_write_RSAPrivateKey(debug_log, rsa, NULL, NULL, 0, NULL, NULL);
+            PEM_write_RSAPrivateKey(debug_log, rsa, nullptr, nullptr, 0, nullptr, nullptr);
 
         debugs(83, DBG_IMPORTANT, "Generated ephemeral RSA key of length " << keylen);
     }
@@ -1052,7 +1052,7 @@
     X509 ***pCert = (X509 ***)ctx->cert;
     X509 * cert = pCert && *pCert ? **pCert : NULL;
 #elif SQUID_SSLGETCERTIFICATE_BUGGY
-    X509 * cert = NULL;
+    X509 * cert = nullptr;
     assert(0);
 #else
     // Temporary ssl for getting X509 certificate from SSL_CTX.
diff -u -r -N squid-6.1/src/store/id_rewriters/file/storeid_file_rewrite.8 squid-6.2/src/store/id_rewriters/file/storeid_file_rewrite.8
--- squid-6.1/src/store/id_rewriters/file/storeid_file_rewrite.8	2023-07-06 17:32:52.000000000 +1200
+++ squid-6.2/src/store/id_rewriters/file/storeid_file_rewrite.8	2023-08-07 07:39:22.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STOREID_FILE_REWRITE 8"
-.TH STOREID_FILE_REWRITE 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH STOREID_FILE_REWRITE 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/src/store_client.cc squid-6.2/src/store_client.cc
--- squid-6.1/src/store_client.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/store_client.cc	2023-08-07 05:11:38.000000000 +1200
@@ -95,7 +95,7 @@
 storeClientListSearch(const MemObject * mem, void *data)
 {
     dlink_node *node;
-    store_client *sc = NULL;
+    store_client *sc = nullptr;
 
     for (node = mem->clients.head; node; node = node->next) {
         sc = node->data;
@@ -104,7 +104,7 @@
             return sc;
     }
 
-    return NULL;
+    return nullptr;
 }
 
 int
diff -u -r -N squid-6.1/src/store_digest.cc squid-6.2/src/store_digest.cc
--- squid-6.1/src/store_digest.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/store_digest.cc	2023-08-07 05:11:38.000000000 +1200
@@ -142,7 +142,7 @@
 
     sd_state = StoreDigestState();
 #else
-    store_digest = NULL;
+    store_digest = nullptr;
     debugs(71, 3, "Local cache digest is 'off'");
 #endif
 }
diff -u -r -N squid-6.1/src/tests/stub_wordlist.cc squid-6.2/src/tests/stub_wordlist.cc
--- squid-6.1/src/tests/stub_wordlist.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/tests/stub_wordlist.cc	2023-08-07 05:11:38.000000000 +1200
@@ -12,6 +12,6 @@
 #define STUB_API "wordlist.cc"
 #include "tests/STUB.h"
 
-const char *wordlistAdd(wordlist **, const char *) STUB_RETVAL(NULL)
+const char *wordlistAdd(wordlist **, const char *) STUB_RETVAL(nullptr)
 void wordlistDestroy(wordlist **) STUB
 
diff -u -r -N squid-6.1/src/tools.cc squid-6.2/src/tools.cc
--- squid-6.1/src/tools.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/tools.cc	2023-08-07 05:11:38.000000000 +1200
@@ -137,7 +137,7 @@
     char *filename;
     // XXX tempnam is obsolete since POSIX.2008-1
     // tmpfile is not an option, we want the created files to stick around
-    if ((filename = tempnam(NULL, APP_SHORTNAME)) == NULL ||
+    if ((filename = tempnam(nullptr, APP_SHORTNAME)) == NULL ||
             (fp = fopen(filename, "w")) == NULL) {
         umask(prev_umask);
         return;
diff -u -r -N squid-6.1/src/unlinkd.cc squid-6.2/src/unlinkd.cc
--- squid-6.1/src/unlinkd.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/unlinkd.cc	2023-08-07 05:11:38.000000000 +1200
@@ -74,7 +74,7 @@
         FD_SET(unlinkd_rfd, &R);
         to.tv_sec = 0;
         to.tv_usec = 100000;
-        select(unlinkd_rfd + 1, &R, NULL, NULL, &to);
+        select(unlinkd_rfd + 1, &R, nullptr, nullptr, &to);
 #endif
     }
 
diff -u -r -N squid-6.1/src/win32.cc squid-6.2/src/win32.cc
--- squid-6.1/src/win32.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/win32.cc	2023-08-07 05:11:38.000000000 +1200
@@ -25,7 +25,7 @@
 
 SQUIDCEXTERN LPCRITICAL_SECTION dbg_mutex;
 void WIN32_ExceptionHandlerCleanup(void);
-static LPTOP_LEVEL_EXCEPTION_FILTER Win32_Old_ExceptionHandler = NULL;
+static LPTOP_LEVEL_EXCEPTION_FILTER Win32_Old_ExceptionHandler = nullptr;
 
 int
 Win32__WSAFDIsSet(int fd, fd_set FAR * set)
diff -u -r -N squid-6.1/src/WinSvc.cc squid-6.2/src/WinSvc.cc
--- squid-6.1/src/WinSvc.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/src/WinSvc.cc	2023-08-07 05:11:38.000000000 +1200
@@ -79,13 +79,13 @@
 static SC_ACTION Squid_SCAction[] = { { SC_ACTION_RESTART, 60000 } };
 static char Squid_ServiceDescriptionString[] = SOFTWARENAME " " VERSION " WWW Proxy Server";
 static SERVICE_DESCRIPTION Squid_ServiceDescription = { Squid_ServiceDescriptionString };
-static SERVICE_FAILURE_ACTIONS Squid_ServiceFailureActions = { INFINITE, NULL, NULL, 1, Squid_SCAction };
+static SERVICE_FAILURE_ACTIONS Squid_ServiceFailureActions = { INFINITE, nullptr, nullptr, 1, Squid_SCAction };
 static char REGKEY[256] = SOFTWARE "\\" VENDOR "\\" SOFTWARENAME "\\";
 static char *keys[] = {
     SOFTWAREString,     /* key[0] */
     VENDORString,       /* key[1] */
     SOFTWARENAMEString,   /* key[2] */
-    NULL,       /* key[3] */
+    nullptr,       /* key[3] */
     NULL        /* key[4] */
 };
 
@@ -116,8 +116,8 @@
         unsigned long result;
         rv = RegCreateKeyEx(hKey, keys[index],  /* subkey */
                             0,          /* reserved */
-                            NULL,       /* class */
-                            REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKeyNext, &result);
+                            nullptr,       /* class */
+                            REG_OPTION_NON_VOLATILE, KEY_WRITE, nullptr, &hKeyNext, &result);
 
         if (rv != ERROR_SUCCESS) {
             fprintf(stderr, "RegCreateKeyEx(%s),%d\n", keys[index], (int) rv);
@@ -276,7 +276,7 @@
         WIN32_argv[WIN32_argc++] = word;
     }
 
-    WIN32_argv[WIN32_argc] = NULL;
+    WIN32_argv[WIN32_argc] = nullptr;
 }
 
 #endif /* USE_WIN32_SERVICE */
@@ -426,7 +426,7 @@
     NotifyAddrChange = (PFNotifyAddrChange) GetProcAddress(IPHLPAPIHandle, NOTIFYADDRCHANGE);
 
     while (1) {
-        Result = NotifyAddrChange(NULL, NULL);
+        Result = NotifyAddrChange(nullptr, nullptr);
         if (Result != NO_ERROR) {
             debugs(1, DBG_IMPORTANT, "ERROR: NotifyAddrChange error " << Result);
             return 1;
@@ -444,7 +444,7 @@
     DWORD threadID = 0, ThrdParam = 0;
 
     if ((WIN32_run_mode == _WIN_SQUID_RUN_MODE_SERVICE) && (Config.onoff.WIN32_IpAddrChangeMonitor)) {
-        NotifyAddrChange_thread = CreateThread(NULL, 0, WIN32_IpAddrChangeMonitor,
+        NotifyAddrChange_thread = CreateThread(nullptr, 0, WIN32_IpAddrChangeMonitor,
                                                &ThrdParam, 0, &threadID);
         if (NotifyAddrChange_thread == NULL) {
             status = GetLastError();
@@ -495,7 +495,7 @@
             return 1;
 
         /* Set Process work dir to directory containing squid.exe */
-        GetModuleFileName(NULL, path, 512);
+        GetModuleFileName(nullptr, path, 512);
 
         WIN32_module_name=xstrdup(path);
 
@@ -511,11 +511,11 @@
             DWORD Type = 0;
             DWORD Size = 0;
             LONG Result;
-            Result = RegQueryValueEx(hndKey, CONFIGFILE, NULL, &Type, NULL, &Size);
+            Result = RegQueryValueEx(hndKey, CONFIGFILE, nullptr, &Type, nullptr, &Size);
 
             if (Result == ERROR_SUCCESS && Size) {
                 ConfigFile = static_cast<char *>(xmalloc(Size));
-                RegQueryValueEx(hndKey, CONFIGFILE, NULL, &Type, (unsigned char *)ConfigFile, &Size);
+                RegQueryValueEx(hndKey, CONFIGFILE, nullptr, &Type, (unsigned char *)ConfigFile, &Size);
             } else
                 ConfigFile = xstrdup(DEFAULT_CONFIG_FILE);
 
@@ -523,11 +523,11 @@
 
             Type = 0;
 
-            Result = RegQueryValueEx(hndKey, COMMANDLINE, NULL, &Type, NULL, &Size);
+            Result = RegQueryValueEx(hndKey, COMMANDLINE, nullptr, &Type, nullptr, &Size);
 
             if (Result == ERROR_SUCCESS && Size) {
                 WIN32_Service_Command_Line = static_cast<char *>(xmalloc(Size));
-                RegQueryValueEx(hndKey, COMMANDLINE, NULL, &Type, (unsigned char *)WIN32_Service_Command_Line, &Size);
+                RegQueryValueEx(hndKey, COMMANDLINE, nullptr, &Type, (unsigned char *)WIN32_Service_Command_Line, &Size);
             } else
                 WIN32_Service_Command_Line = xstrdup("");
 
@@ -658,8 +658,8 @@
 
     keys[4] = const_cast<char*>(service);
 
-    schSCManager = OpenSCManager(NULL,  /* machine (NULL == local)    */
-                                 NULL,          /* database (NULL == default) */
+    schSCManager = OpenSCManager(nullptr,  /* machine (NULL == local)    */
+                                 nullptr,          /* database (NULL == default) */
                                  SC_MANAGER_ALL_ACCESS  /* access required            */
                                 );
 
@@ -732,14 +732,14 @@
 
     keys[4] = const_cast<char*>(service);
 
-    if ((lenpath = GetModuleFileName(NULL, ServicePath, 512)) == 0) {
+    if ((lenpath = GetModuleFileName(nullptr, ServicePath, 512)) == 0) {
         fprintf(stderr, "Can't get executable path\n");
         exit(EXIT_FAILURE);
     }
 
     snprintf(szPath, sizeof(szPath), "%s %s:" SQUIDSBUFPH, ServicePath, _WIN_SQUID_SERVICE_OPTION, SQUIDSBUFPRINT(service_name));
-    schSCManager = OpenSCManager(NULL,  /* machine (NULL == local)    */
-                                 NULL,          /* database (NULL == default) */
+    schSCManager = OpenSCManager(nullptr,  /* machine (NULL == local)    */
+                                 nullptr,          /* database (NULL == default) */
                                  SC_MANAGER_ALL_ACCESS  /* access required            */
                                 );
 
@@ -755,11 +755,11 @@
                                    SERVICE_AUTO_START,              /* start type             */
                                    SERVICE_ERROR_NORMAL,            /* error control type     */
                                    (const char *) szPath,           /* service's binary       */
-                                   NULL,                    /* no load ordering group */
-                                   NULL,                    /* no tag identifier      */
+                                   nullptr,                    /* no load ordering group */
+                                   nullptr,                    /* no tag identifier      */
                                    "Tcpip\0AFD\0",              /* dependencies           */
-                                   NULL,                    /* LocalSystem account    */
-                                   NULL);                   /* no password            */
+                                   nullptr,                    /* LocalSystem account    */
+                                   nullptr);                   /* no password            */
 
         if (schService) {
             if (WIN32_OS_version > _WIN_OS_WINNT) {
@@ -806,8 +806,8 @@
     if (service_name.isEmpty())
         service_name = SBuf(APP_SHORTNAME);
 
-    schSCManager = OpenSCManager(NULL,  /* machine (NULL == local)    */
-                                 NULL,          /* database (NULL == default) */
+    schSCManager = OpenSCManager(nullptr,  /* machine (NULL == local)    */
+                                 nullptr,          /* database (NULL == default) */
                                  SC_MANAGER_ALL_ACCESS  /* access required            */
                                 );
 
@@ -894,8 +894,8 @@
 int WIN32_StartService(int argc, char **argv)
 {
     SERVICE_TABLE_ENTRY DispatchTable[] = {
-        {NULL, SquidWinSvcMain},
-        {NULL, NULL}
+        {nullptr, SquidWinSvcMain},
+        {nullptr, nullptr}
     };
     char *c;
     char stderr_path[256];
diff -u -r -N squid-6.1/tools/cachemgr.cc squid-6.2/tools/cachemgr.cc
--- squid-6.1/tools/cachemgr.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/tools/cachemgr.cc	2023-08-07 05:11:38.000000000 +1200
@@ -589,7 +589,7 @@
 #if _SQUID_WINDOWS_
 
     int reply;
-    char *tmpfile = tempnam(NULL, "tmp0000");
+    char *tmpfile = tempnam(nullptr, "tmp0000");
     FILE *fp = fopen(tmpfile, "w+");
 #else
 
diff -u -r -N squid-6.1/tools/helper-mux/helper-mux.8 squid-6.2/tools/helper-mux/helper-mux.8
--- squid-6.1/tools/helper-mux/helper-mux.8	2023-07-06 17:32:55.000000000 +1200
+++ squid-6.2/tools/helper-mux/helper-mux.8	2023-08-07 07:39:26.000000000 +1200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "HELPER-MUX 8"
-.TH HELPER-MUX 8 "2023-07-06" "perl v5.36.0" "User Contributed Perl Documentation"
+.TH HELPER-MUX 8 "2023-08-06" "perl v5.36.0" "User Contributed Perl Documentation"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -u -r -N squid-6.1/tools/squidclient/squidclient.cc squid-6.2/tools/squidclient/squidclient.cc
--- squid-6.1/tools/squidclient/squidclient.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/tools/squidclient/squidclient.cc	2023-08-07 05:11:38.000000000 +1200
@@ -75,7 +75,7 @@
 /* Bug 3854: AIX 6.1 tries to link in this fde.h global symbol
  * despite squidclient not using any of the fd_* code.
  */
-fde *fde::Table = NULL;
+fde *fde::Table = nullptr;
 #endif
 
 #if _SQUID_WINDOWS_
diff -u -r -N squid-6.1/tools/squidclient/Transport.cc squid-6.2/tools/squidclient/Transport.cc
--- squid-6.1/tools/squidclient/Transport.cc	2023-07-06 17:15:40.000000000 +1200
+++ squid-6.2/tools/squidclient/Transport.cc	2023-08-07 05:11:38.000000000 +1200
@@ -431,7 +431,7 @@
 static bool
 loadTlsParameters()
 {
-    const char *err = NULL;
+    const char *err = nullptr;
     int x;
     if ((x = gnutls_priority_set_direct(Transport::Config.session, Transport::Config.params, &err)) != GNUTLS_E_SUCCESS) {
         if (x == GNUTLS_E_INVALID_REQUEST)
