Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package memcached for openSUSE:Factory 
checked in at 2026-07-09 22:18:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/memcached (Old)
 and      /work/SRC/openSUSE:Factory/.memcached.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "memcached"

Thu Jul  9 22:18:01 2026 rev:75 rq:1364335 version:1.6.44

Changes:
--------
--- /work/SRC/openSUSE:Factory/memcached/memcached.changes      2026-05-30 
22:54:15.202711733 +0200
+++ /work/SRC/openSUSE:Factory/.memcached.new.1991/memcached.changes    
2026-07-09 22:18:11.195691713 +0200
@@ -1,0 +2,7 @@
+Tue Jul  7 15:27:51 UTC 2026 - Marcus Rueckert <[email protected]>
+
+- update to 1.6.44:
+  https://github.com/memcached/memcached/wiki/ReleaseNotes1644
+  https://github.com/memcached/memcached/wiki/ReleaseNotes1643
+
+-------------------------------------------------------------------

Old:
----
  memcached-1.6.42.tar.gz

New:
----
  memcached-1.6.44.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ memcached.spec ++++++
--- /var/tmp/diff_new_pack.iv7BCN/_old  2026-07-09 22:18:13.675775831 +0200
+++ /var/tmp/diff_new_pack.iv7BCN/_new  2026-07-09 22:18:13.679775967 +0200
@@ -42,7 +42,7 @@
 %endif
 %endif
 Name:           memcached
-Version:        1.6.42
+Version:        1.6.44
 Release:        0
 Summary:        A high-performance, distributed memory object caching system
 License:        BSD-3-Clause

++++++ memcached-1.6.42.tar.gz -> memcached-1.6.44.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/configure 
new/memcached-1.6.44/configure
--- old/memcached-1.6.42/configure      2026-05-19 00:14:10.000000000 +0200
+++ new/memcached-1.6.44/configure      2026-07-07 06:24:04.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for memcached 1.6.42.
+# Generated by GNU Autoconf 2.72 for memcached 1.6.44.
 #
 # Report bugs to <[email protected]>.
 #
@@ -604,8 +604,8 @@
 # Identity of this package.
 PACKAGE_NAME='memcached'
 PACKAGE_TARNAME='memcached'
-PACKAGE_VERSION='1.6.42'
-PACKAGE_STRING='memcached 1.6.42'
+PACKAGE_VERSION='1.6.44'
+PACKAGE_STRING='memcached 1.6.44'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1383,7 +1383,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 memcached 1.6.42 to adapt to many kinds of systems.
+'configure' configures memcached 1.6.44 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1454,7 +1454,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of memcached 1.6.42:";;
+     short | recursive ) echo "Configuration of memcached 1.6.44:";;
    esac
   cat <<\_ACEOF
 
@@ -1579,7 +1579,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-memcached configure 1.6.42
+memcached configure 1.6.44
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2194,7 +2194,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by memcached $as_me 1.6.42, which was
+It was created by memcached $as_me 1.6.44, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3745,7 +3745,7 @@
 
 # Define the identity of the package.
  PACKAGE='memcached'
- VERSION='1.6.42'
+ VERSION='1.6.44'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -9429,7 +9429,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by memcached $as_me 1.6.42, which was
+This file was extended by memcached $as_me 1.6.44, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9497,7 +9497,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-memcached config.status 1.6.42
+memcached config.status 1.6.44
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/crawler.c 
new/memcached-1.6.44/crawler.c
--- old/memcached-1.6.42/crawler.c      2026-03-05 00:05:05.000000000 +0100
+++ new/memcached-1.6.44/crawler.c      2026-07-07 06:16:48.000000000 +0200
@@ -263,6 +263,10 @@
 
 static int crawler_metadump_init(crawler_module_t *cm, void *data) {
     cm->status = 0;
+    if (cm->c.buf != NULL) {
+        memcpy(cm->c.buf, "OK\r\n", 4);
+        cm->c.bufused += 4;
+    }
     return 0;
 }
 
@@ -390,6 +394,10 @@
 
 static int crawler_mgdump_init(crawler_module_t *cm, void *data) {
     cm->status = 0;
+    if (cm->c.buf != NULL) {
+        memcpy(cm->c.buf, "OK\r\n", 4);
+        cm->c.bufused += 4;
+    }
     return 0;
 }
 
@@ -450,6 +458,10 @@
 
     if (c->c == NULL) return -1;
     if (data_size == 0) return 0;
+    // a long backstop so clients can't hang forever.
+    // continually timed out stuff used to blow up memory and crash so this is
+    // just to avoid replacing one problem with another.
+    int tries = 1800;
 
     while (sent < data_size) {
         int ret = poll(to_poll, 1, 1000);
@@ -460,7 +472,14 @@
             return -1;
         }
 
-        if (ret == 0) return 0;
+        // Timed out, retry for a while.
+        if (ret == 0) {
+            if (--tries == 0) {
+                lru_crawler_close_client(c);
+                return -1;
+            }
+            continue;
+        }
 
         // check if socket was closed on us.
         if (to_poll[0].revents & POLLIN) {
@@ -487,8 +506,9 @@
             } else if (total == 0) {
                 lru_crawler_close_client(c);
                 return -1;
+            } else {
+                sent += total;
             }
-            sent += total;
         }
     } // while
 
@@ -620,11 +640,15 @@
                 if (c->buflen - c->bufused < LRU_CRAWLER_MINBUFSPACE) {
                     int ret = lru_crawler_write(c);
                     if (ret != 0) {
+                        // Must be locked to unlink crawler.
+                        pthread_mutex_lock(&lru_locks[i]);
                         lru_crawler_class_done(i);
                         continue;
                     }
                 }
             } else if (active_crawler_mod.mod->needs_client) {
+                // Must be locked to unlink crawler.
+                pthread_mutex_lock(&lru_locks[i]);
                 lru_crawler_class_done(i);
                 continue;
             }
@@ -862,9 +886,7 @@
         assert(crawler_mod_regs[type] != NULL);
         active_crawler_mod.mod = crawler_mod_regs[type];
         active_crawler_type = type;
-        if (active_crawler_mod.mod->init != NULL) {
-            active_crawler_mod.mod->init(&active_crawler_mod, data);
-        }
+        /* set client, then call init to be able to send OK */
         if (active_crawler_mod.mod->needs_client) {
             if (c == NULL || sfd == 0) {
                 pthread_mutex_unlock(&lru_crawler_lock);
@@ -875,6 +897,9 @@
                 return -2;
             }
         }
+        if (active_crawler_mod.mod->init != NULL) {
+            active_crawler_mod.mod->init(&active_crawler_mod, data);
+        }
     }
 
     if (ids == NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/doc/Makefile 
new/memcached-1.6.44/doc/Makefile
--- old/memcached-1.6.42/doc/Makefile   2026-05-19 00:14:13.000000000 +0200
+++ new/memcached-1.6.44/doc/Makefile   2026-07-07 06:24:07.000000000 +0200
@@ -194,10 +194,10 @@
 PACKAGE = memcached
 PACKAGE_BUGREPORT = [email protected]
 PACKAGE_NAME = memcached
-PACKAGE_STRING = memcached 1.6.42
+PACKAGE_STRING = memcached 1.6.44
 PACKAGE_TARNAME = memcached
 PACKAGE_URL = 
-PACKAGE_VERSION = 1.6.42
+PACKAGE_VERSION = 1.6.44
 PATH_SEPARATOR = :
 PKG_CONFIG = /usr/bin/pkg-config
 PKG_CONFIG_LIBDIR = 
@@ -208,7 +208,7 @@
 SET_MAKE = 
 SHELL = /bin/bash
 STRIP = 
-VERSION = 1.6.42
+VERSION = 1.6.44
 XML2RFC = no
 XSLTPROC = no
 abs_builddir = /home/dormando/p/code/memcached/doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/items.c new/memcached-1.6.44/items.c
--- old/memcached-1.6.42/items.c        2026-03-05 00:05:05.000000000 +0100
+++ new/memcached-1.6.44/items.c        2026-07-03 02:30:18.000000000 +0200
@@ -1084,6 +1084,7 @@
     void *hold_lock = NULL;
     unsigned int move_to_lru = 0;
     uint64_t limit = 0;
+    bool do_slab_reassign = false;
 
     id |= cur_lru;
     pthread_mutex_lock(&lru_locks[id]);
@@ -1205,7 +1206,7 @@
                     do_item_unlink_nolock(search, hv);
                     removed++;
                     if (settings.slab_automove == 2) {
-                        slabs_reassign(settings.slab_rebal, -1, orig_id, 
SLABS_REASSIGN_ALLOW_EVICTIONS);
+                        do_slab_reassign = true;
                     }
                 } else if (flags & LRU_PULL_RETURN_ITEM) {
                     /* Keep a reference to this item and return it. */
@@ -1242,6 +1243,10 @@
         }
     }
 
+    if (do_slab_reassign) {
+        slabs_reassign(settings.slab_rebal, -1, orig_id, 
SLABS_REASSIGN_ALLOW_EVICTIONS);
+    }
+
     return removed;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/linux_priv.c 
new/memcached-1.6.44/linux_priv.c
--- old/memcached-1.6.42/linux_priv.c   2024-10-31 21:47:40.000000000 +0100
+++ new/memcached-1.6.44/linux_priv.c   2026-07-03 02:30:18.000000000 +0200
@@ -143,6 +143,7 @@
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(epoll_pwait), 0);
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(epoll_ctl), 0);
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(poll), 0);
+    rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(ppoll), 0);
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0);
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(readv), 0);
     rc |= seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mprotect), 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/logger.h 
new/memcached-1.6.44/logger.h
--- old/memcached-1.6.42/logger.h       2026-03-05 00:05:05.000000000 +0100
+++ new/memcached-1.6.44/logger.h       2026-07-03 02:30:18.000000000 +0200
@@ -164,6 +164,9 @@
     struct timeval tv; /* not monotonic! */
     int size;
     union {
+#ifdef NEED_ALIGN
+        uint64_t align;
+#endif
         char end;
     } data[];
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/memcached.c 
new/memcached-1.6.44/memcached.c
--- old/memcached-1.6.42/memcached.c    2026-05-18 23:43:09.000000000 +0200
+++ new/memcached-1.6.44/memcached.c    2026-07-07 05:19:47.000000000 +0200
@@ -3701,9 +3701,19 @@
                     if (strncmp(st, "ascii", len) == 0) {
                         bproto = ascii_prot;
                     } else if (strncmp(st, "binary", len) == 0) {
+                        if (settings.auth_file) {
+                            fprintf(stderr, "Cannot use binary protocol when 
ascii authentication enabled\n");
+                            free(list);
+                            return 1;
+                        }
                         bproto = binary_prot;
                     } else if (strncmp(st, "negotiating", len) == 0) {
-                        bproto = negotiating_prot;
+                        if (settings.auth_file) {
+                            fprintf(stderr, "WARNING: negotiating ports are 
ascii only when ascii authentication enabled\n");
+                            bproto = ascii_prot;
+                        } else {
+                            bproto = negotiating_prot;
+                        }
                     } else if (strncmp(st, "proxy", len) == 0) {
 #ifdef PROXY
                         if (settings.proxy_enabled) {
@@ -4071,7 +4081,12 @@
            "                          forcefully killing LRU tail item.\n"
            "                          disabled by default; very dangerous 
option.\n"
            "   - hash_algorithm:      the hash table algorithm\n"
-           "                          default is murmur3 hash. options: 
jenkins, murmur3, xxh3\n"
+#ifdef NEED_ALIGN
+           "                          default is xxh3 hash on NEED_ALIGN 
builds.\n"
+#else
+           "                          default is murmur3 hash.\n"
+#endif
+           "                          options: jenkins, murmur3, xxh3\n"
            "   - no_lru_crawler:      disable LRU Crawler background thread.\n"
            "   - lru_crawler_sleep:   microseconds to sleep between items\n"
            "                          default is %d.\n"
@@ -4712,7 +4727,11 @@
     bool start_lru_maintainer = true;
     bool start_lru_crawler = true;
     bool start_assoc_maint = true;
+#ifdef NEED_ALIGN
+    enum hashfunc_type hash_type = XXH3_HASH;
+#else
     enum hashfunc_type hash_type = MURMUR3_HASH;
+#endif
     uint32_t tocrawl;
     uint32_t slab_sizes[MAX_NUMBER_OF_SLAB_CLASSES];
     bool use_slab_sizes = false;
@@ -4867,7 +4886,11 @@
 
     /* init settings */
     settings_init();
+#ifdef NEED_ALIGN
+    verify_default("hash_algorithm", hash_type == XXH3_HASH);
+#else
     verify_default("hash_algorithm", hash_type == MURMUR3_HASH);
+#endif
     void *storage = NULL;
 #ifdef EXTSTORE
     void *storage_cf = storage_init_config(&settings);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/memcached.h 
new/memcached-1.6.44/memcached.h
--- old/memcached-1.6.42/memcached.h    2026-05-18 23:43:09.000000000 +0200
+++ new/memcached-1.6.44/memcached.h    2026-07-07 05:19:43.000000000 +0200
@@ -20,6 +20,9 @@
 #include <assert.h>
 #include <grp.h>
 #include <signal.h>
+#ifdef NEED_ALIGN
+#include <string.h>
+#endif
 /* need this to get IOV_MAX on some platforms. */
 #ifndef __need_IOV_MAX
 #define __need_IOV_MAX
@@ -169,6 +172,18 @@
 #define APPEND_NUM_STAT(num, name, fmt, val) \
     APPEND_NUM_FMT_STAT("%d:%s", num, name, fmt, val)
 
+#ifdef NEED_ALIGN
+/** Item client flag conversion */
+#define FLAGS_CONV(it, flag) { \
+    if ((it)->it_flags & ITEM_CFLAGS) { \
+        client_flags_t _flags_conv; \
+        memcpy(&_flags_conv, ITEM_suffix((it)), sizeof(_flags_conv)); \
+        flag = _flags_conv; \
+    } else { \
+        flag = 0; \
+    } \
+}
+#else
 /** Item client flag conversion */
 #define FLAGS_CONV(it, flag) { \
     if ((it)->it_flags & ITEM_CFLAGS) { \
@@ -177,6 +192,7 @@
         flag = 0; \
     } \
 }
+#endif
 
 #define FLAGS_SIZE(item) (((item)->it_flags & ITEM_CFLAGS) ? 
sizeof(client_flags_t) : 0)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/memcached.spec 
new/memcached-1.6.44/memcached.spec
--- old/memcached-1.6.42/memcached.spec 2026-05-19 00:14:09.000000000 +0200
+++ new/memcached-1.6.44/memcached.spec 2026-07-07 06:24:04.000000000 +0200
@@ -27,7 +27,7 @@
 %endif
 
 Name:           memcached
-Version:        1.6.42
+Version:        1.6.44
 Release:        1%{?dist}
 Summary:        High Performance, Distributed Memory Object Cache
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/proto_bin.c 
new/memcached-1.6.44/proto_bin.c
--- old/memcached-1.6.42/proto_bin.c    2026-05-19 00:12:18.000000000 +0200
+++ new/memcached-1.6.44/proto_bin.c    2026-07-07 06:16:48.000000000 +0200
@@ -466,6 +466,7 @@
                              c->cmd == PROTOCOL_BINARY_CMD_GATK);
     int should_return_value = (c->cmd != PROTOCOL_BINARY_CMD_TOUCH);
     bool failed = false;
+    bool overflow = false;
 
     if (settings.verbose > 1) {
         fprintf(stderr, "<%d %s ", c->sfd, should_touch ? "TOUCH" : "GET");
@@ -477,9 +478,9 @@
         protocol_binary_request_touch *t = (void *)extbuf;
         time_t exptime = ntohl(t->message.body.expiration);
 
-        it = item_touch(key, nkey, realtime(exptime), c->thread);
+        it = limited_get(key, nkey, c->thread, realtime(exptime), true, 
DO_UPDATE, &overflow);
     } else {
-        it = item_get(key, nkey, c->thread, DO_UPDATE);
+        it = limited_get(key, nkey, c->thread, 0, false, DO_UPDATE, &overflow);
     }
 
     if (it) {
@@ -632,6 +633,10 @@
         process_stat_settings(&append_stats, c);
     } else if (strncmp(subcommand, "detail", 6) == 0) {
         char *subcmd_pos = subcommand + 6;
+        if (!settings.dump_enabled) {
+            write_bin_error(c, PROTOCOL_BINARY_RESPONSE_KEY_ENOENT, NULL, 0);
+            return;
+        }
         if (strncmp(subcmd_pos, " dump", 5) == 0) {
             int len;
             char *dump_buf = stats_prefix_dump(&len);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/proto_parser.c 
new/memcached-1.6.44/proto_parser.c
--- old/memcached-1.6.42/proto_parser.c 2026-03-05 00:05:05.000000000 +0100
+++ new/memcached-1.6.44/proto_parser.c 2026-07-03 02:30:18.000000000 +0200
@@ -636,7 +636,9 @@
         *p = '0';
         p++;
     } else {
-        p = itoa_u64(*((client_flags_t *) ITEM_suffix(it)), p);
+        client_flags_t flags;
+        FLAGS_CONV(it, flags);
+        p = itoa_u64(flags, p);
     }
     *p = ' ';
     p = itoa_u32(nbytes-2, p+1);
@@ -1108,7 +1110,9 @@
                         *p = '0';
                         p++;
                     } else {
-                        p = itoa_u64(*((client_flags_t *) ITEM_suffix(it)), p);
+                        client_flags_t flags;
+                        FLAGS_CONV(it, flags);
+                        p = itoa_u64(flags, p);
                     }
                     break;
                 case 'l':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/proto_text.c 
new/memcached-1.6.44/proto_text.c
--- old/memcached-1.6.42/proto_text.c   2026-05-19 00:12:18.000000000 +0200
+++ new/memcached-1.6.44/proto_text.c   2026-07-07 06:16:48.000000000 +0200
@@ -223,6 +223,7 @@
 #define SUBCOMMAND_TOKEN 1
 #define KEY_TOKEN 1
 #define MAX_AUTH_REQ_LEN 16384
+#define MIN_AUTH_REQ_LEN 6
 
 int try_read_command_asciiauth(conn *c) {
     mcmc_tokenizer_t tok;
@@ -251,6 +252,12 @@
             return 0;
         }
 
+        if (el - st < MIN_AUTH_REQ_LEN) {
+            // Can't possibly be shorter than this. Parser dislikes getting
+            // strings < 2 in len.
+            conn_set_state(c, conn_closing);
+            return 1;
+        }
         // Looking for: "set foo 0 0 N\r\nuser pass\r\n"
         // key, flags, and ttl are ignored. N is used to see if we have the 
rest.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/proxy_network.c 
new/memcached-1.6.44/proxy_network.c
--- old/memcached-1.6.42/proxy_network.c        2026-05-18 23:43:09.000000000 
+0200
+++ new/memcached-1.6.44/proxy_network.c        2026-07-07 06:16:48.000000000 
+0200
@@ -568,6 +568,16 @@
             // r->resp.reslen + r->resp.vlen is the total length of the 
response.
             // TODO (v2): need to associate a buffer with this response...
             // for now we simply malloc, but reusable buffers should be used
+            if (r->resp.vlen > INT32_MAX/2) {
+                // In a real memcached the value can't be over 1G. I made a
+                // huge mess out of the various places blen gets used, so
+                // instead of trying to fix all those paths without breaking
+                // something else, we can instead clamp the value length.
+                flags = P_BE_FAIL_OOM;
+                r->blen = 0;
+                stop = true;
+                break;
+            }
 
             r->blen = r->resp.reslen + r->resp.vlen;
             r->buf = malloc(r->blen + extra_space);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/t/ascii-auth.t 
new/memcached-1.6.44/t/ascii-auth.t
--- old/memcached-1.6.42/t/ascii-auth.t 2026-05-19 00:12:18.000000000 +0200
+++ new/memcached-1.6.44/t/ascii-auth.t 2026-07-07 06:16:48.000000000 +0200
@@ -22,7 +22,7 @@
 like(scalar <$sock>, qr/CLIENT_ERROR/, "failed to authenticate");
 
 # Super long tokens are invalid.
-print $sock "set foo 0 0 2147483646\r\nasfd\r\n";
+print $sock "set foo 0 0 2147483646\r\n";
 like(scalar <$sock>, qr/CLIENT_ERROR/, "failed to authenticate");
 
 # Try for real.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/t/lru-crawler.t 
new/memcached-1.6.44/t/lru-crawler.t
--- old/memcached-1.6.42/t/lru-crawler.t        2024-08-01 20:54:00.000000000 
+0200
+++ new/memcached-1.6.44/t/lru-crawler.t        2026-07-03 02:30:18.000000000 
+0200
@@ -2,7 +2,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 70257;
+use Test::More tests => 70259;
 use FindBin qw($Bin);
 use lib "$Bin/lib";
 use MemcachedTest;
@@ -71,6 +71,7 @@
 # Check that crawler metadump works correctly.
 {
     print $sock "lru_crawler metadump all\r\n";
+    is(scalar <$sock>, "OK\r\n");
     my $count = 0;
     while (<$sock>) {
         last if /^(\.|END)/;
@@ -110,6 +111,7 @@
 # Check metadump hash table walk returns correct number of items.
 {
     print $sock "lru_crawler metadump hash\r\n";
+    is(scalar <$sock>, "OK\r\n");
     my $count = 0;
     while (<$sock>) {
         last if /^(\.|END)/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/t/proxyunits.t 
new/memcached-1.6.44/t/proxyunits.t
--- old/memcached-1.6.42/t/proxyunits.t 2026-03-05 00:05:05.000000000 +0100
+++ new/memcached-1.6.44/t/proxyunits.t 2026-07-03 02:30:18.000000000 +0200
@@ -159,6 +159,20 @@
 }
 
 {
+    note("Testing extreme backend response");
+    my $be = $mbe[0];
+    print $ps "get /b/e\r\n";
+    is(scalar <$be>, "get /b/e\r\n", "get passthrough");
+    # Set impossible value
+    my $data = 'x' x 16000;
+    print $be "VALUE /b/c 0 4294967293\r\n$data\r\nEND\r\n";
+
+    is(scalar <$ps>, "SERVER_ERROR backend failure\r\n", "backend breaks");
+    # Accept new backend
+    $mbe[0] = accept_backend($mocksrvs[0]);
+}
+
+{
     note("Test dead backend");
     my $start = int(time());
     print $ps "get /dead/foo\r\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/t/slabs-mover.t 
new/memcached-1.6.44/t/slabs-mover.t
--- old/memcached-1.6.42/t/slabs-mover.t        2026-03-05 00:05:05.000000000 
+0100
+++ new/memcached-1.6.44/t/slabs-mover.t        2026-07-03 02:30:18.000000000 
+0200
@@ -40,6 +40,7 @@
         last if ($stats_a->{$stat} == $amt);
         sleep $to_sleep;
         $to_sleep += $cnt / 100;
+        $to_sleep = 0.2 if $to_sleep > 0.2;
         #print STDERR "SLEEPING: $to_sleep STAT: ", $stats_a->{$stat}, " LAST 
BUSY: ", $stats_a->{slab_reassign_last_busy_status}, "\n";
     }
     return $stats_a;
@@ -57,6 +58,7 @@
         last if ($stats_a->{$stat} > $stats->{$stat}+$amt);
         sleep $to_sleep;
         $to_sleep += $cnt / 100;
+        $to_sleep = 0.2 if $to_sleep > 0.2;
         #print STDERR "SLEEPING: $to_sleep STAT: ", $stats_a->{$stat}, " LAST 
BUSY: ", $stats_a->{slab_reassign_last_busy_status}, "\n";
         #print STDERR Dumper(map { $_ => $stats_a->{$_} } sort keys 
%$stats_a), "\n";
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/vendor/mcmc/mcmc.c 
new/memcached-1.6.44/vendor/mcmc/mcmc.c
--- old/memcached-1.6.42/vendor/mcmc/mcmc.c     2026-05-18 23:43:09.000000000 
+0200
+++ new/memcached-1.6.44/vendor/mcmc/mcmc.c     2026-07-03 02:30:18.000000000 
+0200
@@ -193,7 +193,7 @@
 
     errno = 0;
     uint32_t bytes = strtoul(p, &n, 10);
-    if ((errno == ERANGE) || (p == n)) {
+    if ((errno == ERANGE) || (p == n) || (bytes >= UINT32_MAX-2)) {
         return -MCMC_ERR_VALUE;
     }
     p = n;
@@ -350,7 +350,7 @@
                         errno = 0;
                         char *n = NULL;
                         uint32_t vsize = strtoul(cur, &n, 10);
-                        if ((errno == ERANGE) || (cur == n)) {
+                        if ((errno == ERANGE) || (cur == n) || (vsize >= 
UINT32_MAX-2)) {
                             r->type = MCMC_RESP_FAIL;
                             code = -MCMC_ERR_PARSE;
                         } else {
@@ -635,6 +635,8 @@
     }
 }
 
+// In these cases where we are converting tokens to numerics we want to
+// exclude the command and the key; index 1 is the first valid.
 #define X(n, p, c) \
     int n(const char *l, mcmc_tokenizer_t *t, int idx, p *val) { \
         if (idx > 0 && idx < t->ntokens) { \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/memcached-1.6.42/version.m4 
new/memcached-1.6.44/version.m4
--- old/memcached-1.6.42/version.m4     2026-05-19 00:14:09.000000000 +0200
+++ new/memcached-1.6.44/version.m4     2026-07-07 06:24:04.000000000 +0200
@@ -1 +1 @@
-m4_define([VERSION_NUMBER], [1.6.42])
+m4_define([VERSION_NUMBER], [1.6.44])

Reply via email to