The branch, v4-22-stable has been updated
       via  44b1df8ec73 VERSION: Disable GIT_SNAPSHOT for the 4.22.7 release.
       via  49f6aa2c021 WHATSNEW: Add release notes for Samba 4.22.7.
       via  80e60822bd2 Revert "ldb: User hexchars_upper from replace.h"
       via  66be538e33e s3:libads: Set udp_preference_limit = 0 for MIT Kerberos
       via  f1b0234b85e s3:libads: Set a request timeout for Kerberos requests
       via  573a31bc342 s3-winbindd: make sure we always have 
WINBINDD_CACHE_VERSION in winbindd_cache.tdb
       via  68013eed257 s3-winbindd: provide one wcache_open() function for all 
tdb opens
       via  b0378cf32ba s3-winbindd: make initialize_winbindd_cache() static
       via  8218ed45e29 s3-winbind: make wcache_store_seqnum static
       via  92d7ff790c6 s3-winbindd: Fix winbind NDR caching.
       via  b3810646ab6 s3-selftest: add tests for winbindd_cache.tdb sanity
       via  baca60f9a22 vfs_fruit: psd->dacl can be NULL, use orig_num_aces
       via  59200ef1002 mdssvc: support a wider range of years [0000,9999] in 
$time.iso
       via  ac715e2e6b3 ctdb: Fix ctdb startup with inconsistent cluster lock 
settings
       via  cbe63c136e1 s3:printing: Load the shares for [printers] in 
samba-bgqd
       via  9ab05f173f6 docs-xml: Improve the samba-bgqd manpage
       via  593b3a43369 smbd: Fix CID 1665417, UNUSED_VALUE in 
openat_pathref_fsp_dot()
       via  b42548e5f70 smbd: Fix Bug 15897
       via  fd9de4bd525 smbd: Add openat_pathref_fsp_dot()
       via  f318a44c526 vfs_recycle: Make recycle:touch/touch_mtime work again 
if recycle:keeptree is set
       via  cd92005e35c vfs_recycle: Fix trailing whitespace in vfs_recycle.c
       via  56ff3d96aa3 selftest: Add a test for 
recycle:touch,touch_mtime,keeptree
       via  5e797f8907a mdssvc: add support for parsing date ranges
       via  954b08d1b3d mdssvc: add a test for parsing Spotlight date ranges
       via  a22f2a91b28 mdssvc: reduce a log level to DEBUG
       via  c78caf6c40e ctdb-scripts: Avoid failing updateip when IP is not 
assigned
       via  38938918715 ctdb-scripts: Avoid printing a message if no connections
       via  0af32c6b70a ctdb-tests: Add an event script unit test for updateip
       via  36b489ce2ac ctdb-daemon: Fix a crash due to a failed updateip
       via  69ef72edc29 VERSION: Bump version up to Samba 4.22.7...
      from  7e96f4ecf32 VERSION: Disable GIT_SNAPSHOT for the 4.22.6 release.

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-22-stable


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                            |   4 +-
 WHATSNEW.txt                                       |  68 ++++++++++++-
 ctdb/config/events/legacy/10.interface.script      |  17 +++-
 ctdb/config/functions                              |   4 +
 ctdb/server/ctdb_recover.c                         |   2 +
 ctdb/server/ctdb_takeover.c                        |  10 +-
 .../UNIT/eventscripts/10.interface.updateip.001.sh |  16 +++
 docs-xml/manpages/samba-bgqd.8.xml                 |  37 +++++--
 lib/ldb/common/ldb_dn.c                            |  11 +-
 selftest/target/Samba3.pm                          |   3 +
 source3/libads/kerberos.c                          |  16 +++
 source3/modules/vfs_fruit.c                        |   2 +-
 source3/modules/vfs_recycle.c                      |   6 +-
 source3/printing/queue_process.c                   |   3 +
 source3/rpc_server/mdssvc/es_parser.y              |  18 +++-
 source3/rpc_server/mdssvc/test_mdsparser_es.c      |  17 ++++
 source3/script/tests/test_recycle.sh               |  37 +++++++
 source3/script/tests/test_winbind_cache_sanity.sh  | 112 +++++++++++++++++++++
 source3/selftest/tests.py                          |   4 +
 source3/smbd/filename.c                            |  16 +--
 source3/smbd/files.c                               | 108 ++++++++++++++++++++
 source3/smbd/proto.h                               |   4 +
 source3/winbindd/winbindd_cache.c                  |  82 ++++++++-------
 source3/winbindd/winbindd_proto.h                  |   3 -
 24 files changed, 519 insertions(+), 81 deletions(-)
 create mode 100755 ctdb/tests/UNIT/eventscripts/10.interface.updateip.001.sh
 create mode 100755 source3/script/tests/test_winbind_cache_sanity.sh


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index f122fe937f1..b3c23aaf844 100644
--- a/VERSION
+++ b/VERSION
@@ -27,7 +27,7 @@ SAMBA_COPYRIGHT_STRING="Copyright Andrew Tridgell and the 
Samba Team 1992-2025"
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=22
-SAMBA_VERSION_RELEASE=6
+SAMBA_VERSION_RELEASE=7
 
 ########################################################
 # If a official release has a serious bug              #
@@ -101,7 +101,7 @@ SAMBA_VERSION_RC_RELEASE=
 # e.g. SAMBA_VERSION_IS_SVN_SNAPSHOT=yes               #
 #  ->  "3.0.0-SVN-build-199"                           #
 ########################################################
-SAMBA_VERSION_IS_GIT_SNAPSHOT=no 
+SAMBA_VERSION_IS_GIT_SNAPSHOT=no
 
 ########################################################
 # This is for specifying a release nickname            #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index bf5f8b02c29..daf41566a46 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,3 +1,68 @@
+                   ==============================
+                   Release Notes for Samba 4.22.7
+                         December 18, 2025
+                   ==============================
+
+
+This is the latest stable release of the Samba 4.22 release series.
+
+
+Changes since 4.22.6
+--------------------
+
+o  Ralph Boehme <[email protected]>
+   * BUG 15926: Samba 4.22 breaks Time Machine
+   * BUG 15930: Searching for numbers doesn't work with Spotlight
+   * BUG 15947: mdssvc doesn't support $time.iso dates before 1970
+
+o  Günther Deschner <[email protected]>
+   * BUG 15963: Fix winbind cache consistency
+
+o  Pavel Filipenský <[email protected]>
+   * BUG 15940: vfs_recycle does not update mtime
+
+o  Volker Lendecke <[email protected]>
+   * BUG 15897: Assert failed: (dirfd != -1) || (smb_fname->base_name[0] == 
'/')
+     in vfswrap_openat
+   * BUG 15950: ctdb can crash with inconsistent cluster lock configuration
+
+o  Anoop C S <[email protected]>
+   * BUG 15897: Assert failed: (dirfd != -1) || (smb_fname->base_name[0] == 
'/')
+     in vfswrap_openat
+
+o  Andreas Schneider <[email protected]>
+   * BUG 15809: samba-bgqd: rework man page
+   * BUG 15936: samba-bgqd can't find [printers] share
+   * BUG 15955: Winbind can hang forever in gssapi if there are network issues.
+   * BUG 15961: libldb requires linking libreplace on Linux
+
+o  Martin Schwenke <[email protected]>
+   * BUG 15935: Crash in ctdbd on failed updateip
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical:matrix.org matrix room, or
+#samba-technical IRC channel on irc.libera.chat.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 4.1 and newer product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
                    ==============================
                    Release Notes for Samba 4.22.6
                           October 16, 2025
@@ -59,8 +124,7 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
                    ==============================
                    Release Notes for Samba 4.22.5
                           October 15, 2025
diff --git a/ctdb/config/events/legacy/10.interface.script 
b/ctdb/config/events/legacy/10.interface.script
index 8d2d6968a1d..1ab39c7e567 100755
--- a/ctdb/config/events/legacy/10.interface.script
+++ b/ctdb/config/events/legacy/10.interface.script
@@ -78,6 +78,11 @@ get_iface_ip_maskbits()
                                "$ip" "$maskbits" "$_maskbits_in"
                fi
        else
+               if [ "$_iface_in" = "__none__" ]; then
+                       echo "WARNING: Unable to determine interface for IP 
${ip}"
+                       iface="$_iface_in"
+                       return
+               fi
                die "ERROR: Unable to determine interface for IP ${ip}"
        fi
 }
@@ -214,10 +219,14 @@ updateip)
                exit 0
        fi
 
-       ip_block "$ip" "$oiface"
-
-       delete_ip_from_iface "$oiface" "$ip" "$maskbits" 2>/dev/null
-       delete_ip_from_iface "$niface" "$ip" "$maskbits" 2>/dev/null
+       # Behave more like takeip when the IP is not assigned.  No
+       # need for a similar condition around ip_unblock()s because
+       # they will silently fail.
+       if [ "$oiface" != "__none__" ]; then
+               ip_block "$ip" "$oiface"
+               delete_ip_from_iface "$oiface" "$ip" "$maskbits" >/dev/null 2>&1
+       fi
+       delete_ip_from_iface "$niface" "$ip" "$maskbits" >/dev/null 2>&1
 
        add_ip_to_iface "$niface" "$ip" "$maskbits" || {
                ip_unblock "$ip" "$oiface"
diff --git a/ctdb/config/functions b/ctdb/config/functions
index 1d80c61e5f2..f5194237843 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -630,6 +630,10 @@ tickle_tcp_connections()
        _conns=$(get_tcp_connections_for_ip "$_ip" |
                awk '{ print $1, $2 ; print $2, $1 }')
 
+       if [ -z "$_conns" ]; then
+               return
+       fi
+
        echo "$_conns" | awk '{ print "Tickle TCP connection", $1, $2 }'
        echo "$_conns" | ctdb tickle
 }
diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c
index 5a40618487e..18dc250f5ce 100644
--- a/ctdb/server/ctdb_recover.c
+++ b/ctdb/server/ctdb_recover.c
@@ -977,6 +977,8 @@ static void start_recovery_reclock_callback(struct 
ctdb_context *ctdb,
                       local == NULL ? "NULL" : local));
                talloc_free(state);
                ctdb_shutdown_sequence(ctdb, 1);
+               /* In case above returns due to duplicate shutdown */
+               return;
        }
        DEBUG(DEBUG_INFO,
              ("Recovery lock consistency check successful\n"));
diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c
index 60f60e29ffc..cbf8d0a5b10 100644
--- a/ctdb/server/ctdb_takeover.c
+++ b/ctdb/server/ctdb_takeover.c
@@ -617,7 +617,15 @@ static void ctdb_do_updateip_callback(struct ctdb_context 
*ctdb, int status,
                 */
                ctdb_vnn_unassign_iface(ctdb, state->vnn);
                state->vnn->iface = state->old;
-               state->vnn->iface->references++;
+               /*
+                * state->old (above) can be NULL if the IP wasn't
+                * recorded as held by this node but the system thinks
+                * the IP was assigned.  In that case, a move could
+                * still be desirable..
+                */
+               if (state->vnn->iface != NULL) {
+                       state->vnn->iface->references++;
+               }
 
                ctdb_request_control_reply(ctdb, state->c, NULL, status, NULL);
                talloc_free(state);
diff --git a/ctdb/tests/UNIT/eventscripts/10.interface.updateip.001.sh 
b/ctdb/tests/UNIT/eventscripts/10.interface.updateip.001.sh
new file mode 100755
index 00000000000..e9567a8d114
--- /dev/null
+++ b/ctdb/tests/UNIT/eventscripts/10.interface.updateip.001.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "error - update a non-existent ip"
+
+setup
+
+public_address=$(ctdb_get_1_public_address)
+ip="${public_address% *}"
+ip="${ip#* }"
+
+ok "WARNING: Unable to determine interface for IP ${ip}"
+# Want separate words from public_address: interface IP maskbits
+# shellcheck disable=SC2086
+simple_test "__none__" $public_address
diff --git a/docs-xml/manpages/samba-bgqd.8.xml 
b/docs-xml/manpages/samba-bgqd.8.xml
index ef50a542a9e..9a16a2aaad0 100644
--- a/docs-xml/manpages/samba-bgqd.8.xml
+++ b/docs-xml/manpages/samba-bgqd.8.xml
@@ -14,28 +14,53 @@
 <refnamediv>
        <refname>samba-bgqd</refname>
        <refpurpose>This is an internal helper program performing
-       asynchronous printing-related jobs.</refpurpose>
+       asynchronous printing-related tasks</refpurpose>
 </refnamediv>
 
 <refsynopsisdiv>
        <cmdsynopsis>
                <command>samba-bgqd</command>
+               <arg choice="opt">-D|--daemon</arg>
+               <arg choice="opt">-i|--interactive</arg>
+               <arg choice="opt">-F|--foreground</arg>
+               <arg choice="opt">--no-process-group</arg>
+               <arg choice="opt">-d &lt;debug level&gt;</arg>
+               <arg choice="opt">--debug-stdout</arg>
+               <arg choice="opt">--configfile=&lt;configuration file&gt;</arg>
+               <arg choice="opt">--option=&lt;name&gt;=&lt;value&gt;</arg>
+               <arg choice="opt">-l|--log-basename &lt;log directory&gt;</arg>
+               <arg choice="opt">--ready-signal-fd &lt;fd&gt;</arg>
+               <arg choice="opt">--parent-watch-fd &lt;fd&gt;</arg>
        </cmdsynopsis>
 </refsynopsisdiv>
 
 <refsect1>
        <title>DESCRIPTION</title>
 
-       <para>This tool is part of the
+       <para>This program is part of the
        <citerefentry><refentrytitle>samba</refentrytitle>
        <manvolnum>7</manvolnum></citerefentry> suite.</para>
 
-       <para>samba-bgqd is an helper program to be spawned by smbd or
-       spoolssd to perform jobs like updating the printer list or
-       other management tasks asynchronously on demand. It is not
-       intended to be called by users or administrators.</para>
+       <para><command>samba-bgqd</command> is not intended to be invoked
+       directly by users.</para>
+
+       <para>Likewise, while <command>samba-bgqd</command> is also not
+       intended to be run manually by system administrators, on systems with a
+       large number of printers configured via CUPS, it is recommended to run
+       <command>samba-bgqd</command> as a systemd service to improve
+       performance and responsiveness of printing operations.</para>
 </refsect1>
 
+<refsect1>
+       <title>SEE ALSO</title>
+
+       <para>
+       <citerefentry><refentrytitle>smbd</refentrytitle>
+       <manvolnum>8</manvolnum></citerefentry>, and
+       <citerefentry><refentrytitle>smb.conf</refentrytitle>
+       <manvolnum>5</manvolnum></citerefentry>.
+       </para>
+</refsect1>
 <refsect1>
        <title>AUTHOR</title>
 
diff --git a/lib/ldb/common/ldb_dn.c b/lib/ldb/common/ldb_dn.c
index 5b8c0f4f580..389da444904 100644
--- a/lib/ldb/common/ldb_dn.c
+++ b/lib/ldb/common/ldb_dn.c
@@ -232,10 +232,15 @@ static int ldb_dn_escape_internal(char *dst, const char 
*src, int len)
                case '\0': {
                        /* any others get \XX form */
                        unsigned char v;
+                       /*
+                        * Do not use libreplace for this. We don't want to have
+                        * a hard requirement for it.
+                        */
+                       const char *hexbytes = "0123456789ABCDEF";
                        v = (const unsigned char)c;
                        *d++ = '\\';
-                       *d++ = hexchars_upper[v>>4];
-                       *d++ = hexchars_upper[v&0xF];
+                       *d++ = hexbytes[v>>4];
+                       *d++ = hexbytes[v&0xF];
                        break;
                }
                default:
@@ -2100,7 +2105,7 @@ int ldb_dn_set_extended_component(struct ldb_dn *dn,
        unsigned int i;
        struct ldb_val v2;
        const struct ldb_dn_extended_syntax *ext_syntax;
-       
+
        if ( ! ldb_dn_validate(dn)) {
                return LDB_ERR_OTHER;
        }
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 60f7a9a546a..b61e5d6a855 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -3722,6 +3722,9 @@ sub provision($$)
        path = $recycle_shrdir
        vfs objects = recycle
        recycle : repository = .trash
+       recycle : keeptree = yes
+       recycle : touch = yes
+       recycle : touch_mtime = yes
        recycle : exclude = *.tmp
        recycle : directory_mode = 755
 
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index d8325201b2f..5593364c397 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -1380,6 +1380,15 @@ bool create_local_private_krb5_conf_for_domain(const 
char *realm,
        char *enctypes = NULL;
        const char *include_system_krb5 = "";
        mode_t mask;
+       /*
+        * The default will be 15 seconds, it can be changed in the smb.conf:
+        * [global]
+        *   krb5:request_timeout = 30
+        */
+       int timeout_sec = lp_parm_int(-1,
+                                     "krb5",
+                                     "request_timeout",
+                                     15 /* default */);
 
        if (!lp_create_krb5_conf()) {
                return false;
@@ -1449,6 +1458,12 @@ bool create_local_private_krb5_conf_for_domain(const 
char *realm,
        file_contents =
            talloc_asprintf(fname,
                            "[libdefaults]\n"
+#ifdef SAMBA4_USES_HEIMDAL
+                           "\tkdc_timeout = %d\n"
+#else
+                           "\trequest_timeout = %ds\n"
+                           "\tudp_preference_limit = 0\n"
+#endif
                            "\tdefault_realm = %s\n"
                            "%s"
                            "\tdns_lookup_realm = false\n"
@@ -1458,6 +1473,7 @@ bool create_local_private_krb5_conf_for_domain(const char 
*realm,
                            "\t%s = {\n"
                            "%s\t}\n"
                            "%s\n",
+                           timeout_sec,
                            realm_upper,
                            enctypes,
                            realm_upper,
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 213d4cc3eeb..795f79ce09c 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -4655,7 +4655,7 @@ static NTSTATUS fruit_fset_nt_acl(vfs_handle_struct 
*handle,
 
        DBG_DEBUG("%s\n", fsp_str_dbg(fsp));
 
-       if (config->ignore_zero_aces && (psd->dacl->num_aces == 0)) {
+       if (config->ignore_zero_aces && (orig_num_aces == 0)) {
                /*
                 * Just ignore Set-ACL requests with zero ACEs.
                 */
diff --git a/source3/modules/vfs_recycle.c b/source3/modules/vfs_recycle.c
index 9c0020a8dbe..421659fa6ab 100644
--- a/source3/modules/vfs_recycle.c
+++ b/source3/modules/vfs_recycle.c
@@ -363,9 +363,9 @@ static bool matchdirparam(const char **dir_exclude_list, 
char *path)
                return False;
        }
 
-       /* 
+       /*
         * Walk the components of path, looking for matches with the
-        * exclude list on each component. 
+        * exclude list on each component.
         */
 
        for (startp = path; startp; startp = endp) {
@@ -612,7 +612,7 @@ static int recycle_unlink_internal(vfs_handle_struct 
*handle,
                goto done;
        }
 
-       if (config->keeptree) {
+       if (config->keeptree && !ISDOT(path_name)) {
                temp_name = talloc_asprintf(frame, "%s/%s",
                                            config->repository,
                                            path_name);
diff --git a/source3/printing/queue_process.c b/source3/printing/queue_process.c
index 0f95bd736f2..51eafa31572 100644
--- a/source3/printing/queue_process.c
+++ b/source3/printing/queue_process.c
@@ -265,6 +265,7 @@ static void bq_smb_conf_updated(struct messaging_context 
*msg_ctx,
        DEBUG(10,("smb_conf_updated: Got message saying smb.conf was "
                  "updated. Reloading.\n"));
        change_to_root_user();
+       lp_load_with_shares(get_dyn_CONFIGFILE());
        pcap_cache_reload(state->ev, msg_ctx, reload_pcap_change_notify);
        printing_subsystem_queue_tasks(state);
 }
@@ -322,6 +323,8 @@ struct bq_state *register_printing_bq_handlers(
                goto fail_free_handlers;
        }
 
+       /* Load shares, needed for [printers] */
+       lp_load_with_shares(get_dyn_CONFIGFILE());
        /* Initialize the printcap cache as soon as the daemon starts. */
        pcap_cache_reload(state->ev, state->msg, reload_pcap_change_notify);
 
diff --git a/source3/rpc_server/mdssvc/es_parser.y 
b/source3/rpc_server/mdssvc/es_parser.y
index 62ca63d90f2..267bc808091 100644
--- a/source3/rpc_server/mdssvc/es_parser.y
+++ b/source3/rpc_server/mdssvc/es_parser.y
@@ -219,6 +219,13 @@ FUNC_INRANGE OBRACE attribute COMMA WORD COMMA WORD CBRACE 
{
        } else {
                $$ = map_expr($3, '~', $5, $7);
        }
+}
+| FUNC_INRANGE OBRACE attribute COMMA isodate COMMA isodate CBRACE {
+       if ($3 == NULL) {
+               $$ = NULL;
+       } else {
+               $$ = map_expr($3, '~', $5, $7);
+       }
 };
 
 attribute:
@@ -412,7 +419,7 @@ static char *map_fts(const struct es_attr_map *attr,
                end = ")";
                break;
        default:
-               DBG_ERR("Mapping fts [%s] unexpected op [%c]\n", val, op);
+               DBG_DEBUG("Mapping fts [%s] unexpected op [%c]\n", val, op);
                return NULL;
        }
 
@@ -487,15 +494,16 @@ static char *map_str(const struct es_attr_map *attr,
 static char *map_sldate_to_esdate(TALLOC_CTX *mem_ctx,
                                  const char *sldate)
 {
+       char *endp = NULL;
        struct tm *tm = NULL;
        char *esdate = NULL;
        char buf[21];
        size_t len;
        time_t t;
-       int error;
 
-       t = (time_t)smb_strtoull(sldate, NULL, 10, &error, SMB_STR_STANDARD);
-       if (error != 0) {
+       errno = 0;
+       t = (time_t)strtoll(sldate, &endp, 10);
+       if (*sldate == '\0' || endp == sldate || *endp != '\0' || errno != 0) {
                DBG_ERR("smb_strtoull [%s] failed\n", sldate);
                return NULL;
        }
@@ -508,7 +516,7 @@ static char *map_sldate_to_esdate(TALLOC_CTX *mem_ctx,
        }
 
        len = strftime(buf, sizeof(buf),
-                      "%Y-%m-%dT%H:%M:%SZ", tm);
+                      "%4Y-%m-%dT%H:%M:%SZ", tm);
        if (len != 20) {
                DBG_ERR("strftime [%s] failed\n", sldate);
                return NULL;
diff --git a/source3/rpc_server/mdssvc/test_mdsparser_es.c 
b/source3/rpc_server/mdssvc/test_mdsparser_es.c
index a61f84ceaff..1de8a317930 100644
--- a/source3/rpc_server/mdssvc/test_mdsparser_es.c
+++ b/source3/rpc_server/mdssvc/test_mdsparser_es.c
@@ -53,6 +53,20 @@ static struct {
        }, {
                "kMDItemFSContentChangeDate==$time.iso(2018-10-01T10:00:00Z)",
                "file.last_modified:2018\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+       }, {
+               "kMDItemFSContentChangeDate==$time.iso(1960-10-01T10:00:00Z)",
+               "file.last_modified:1960\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+#ifdef __LP64__
+       }, {
+               "kMDItemFSContentChangeDate==$time.iso(1000-10-01T10:00:00Z)",
+               "file.last_modified:1000\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+       }, {
+               "kMDItemFSContentChangeDate==$time.iso(0000-10-01T10:00:00Z)",
+               "file.last_modified:0000\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+       }, {
+               "kMDItemFSContentChangeDate==$time.iso(9999-10-01T10:00:00Z)",
+               "file.last_modified:9999\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+#endif
        }, {
                "kMDItemFSContentChangeDate==\"1\"",


-- 
Samba Shared Repository

Reply via email to