On 2026-02-24T03:10:41+0100, Bruno Haible wrote:
> Alejandro Colomar wrote:
> > > These changes look OK. Can you please send them in "git format-patch"
> > > format, as a mail attachment (not inline in a mail)? That would make it
> > > easy for me to apply.
> > 
> > Sure; please find it attached (it's the patch 2/2).  I've also attached
> > patch 1/2, which are some places I had changed to use strnul(3),
> 
> Thanks. I combined them, eliminated changes to files shared with glibc
> (in order to minimize future sync efforts) and to relocatable.c (not
> worth the trouble), and added 'strnul' to the respective module dependencies.
> 
> This is what I'm committing in your name:
> 
> 
> 2026-02-23  Alejandro Colomar  <[email protected]>

Lovely; thanks!!  :-)

> 
>       Use strnul in a few places.
>       * lib/argz.c (argz_next): Use strnul.
>       * lib/cpu-supports.c (hwcap_allowed): Likewise.
>       * lib/file-has-acl.c (aclinfo_has_xattr): Likewise.
>       * lib/inet_ntop.c (inet_ntop6): Likewise.
>       * lib/link.c (link): Likewise.
>       * lib/localename-unsafe.c (enum_locales_fn): Likewise.
>       * lib/mbspcasecmp.c (mbspcasecmp): Likewise.
>       * lib/opendir.c (opendir): Likewise.
>       * lib/parse-duration.c (parse_year_month_day, parse_hour_minute_second,
>       trim): Likewise.
>       * lib/setlocale.c (setlocale_unixlike): Likewise.
>       * lib/strftime.c (__strftime_internal): Likewise.
>       * lib/striconv.c (str_cd_iconv): Likewise.
>       * lib/strncat.c (strncat): Likewise.
>       * lib/term-style-control.c (log_signal_handler_called,
>       tcsetattr_failed): Likewise.
>       * lib/time_rz.c (save_abbr): Likewise.
>       * lib/vc-mtime.c (git_mtime, max_vc_mtime): Likewise.
>       * tests/test-savedir.c (test_savedir_sort_none, test_savedir_sort_name):
>       Likewise.
>       * modules/argz (Depends-on): Add strnul.
>       * modules/cpu-supports (Depends-on): Likewise.
>       * modules/file-has-acl (Depends-on): Likewise.
>       * modules/inet_ntop (Depends-on): Likewise.
>       * modules/link (Depends-on): Likewise.
>       * modules/localename-unsafe (Depends-on): Likewise.
>       * modules/localename-unsafe-limited (Depends-on): Likewise.
>       * modules/mbspcasecmp (Depends-on): Likewise.
>       * modules/opendir (Depends-on): Likewise.
>       * modules/parse-duration (Depends-on): Likewise.
>       * modules/setlocale (Depends-on): Likewise.
>       * modules/nstrftime (Depends-on): Likewise.
>       * modules/nstrftime-limited (Depends-on): Likewise.
>       * modules/c-nstrftime (Depends-on): Likewise.
>       * modules/fprintftime (Depends-on): Likewise.
>       * modules/striconv (Depends-on): Likewise.
>       * modules/strncat (Depends-on): Likewise.
>       * modules/term-style-control (Depends-on): Likewise.
>       * modules/time_rz (Depends-on): Likewise.
>       * modules/vc-mtime (Depends-on): Likewise.
>       * modules/savedir-tests (Depends-on): Likewise.
> 
> diff --git a/lib/argz.c b/lib/argz.c
> index 55303dfb19..0d36c741d9 100644
> --- a/lib/argz.c
> +++ b/lib/argz.c
> @@ -175,7 +175,7 @@ argz_next (const char *argz, size_t argz_len, const char 
> *entry)
>    if (entry)
>      {
>        if (entry < argz + argz_len)
> -        entry = strchr (entry, '\0') + 1;
> +        entry = strnul (entry) + 1;
>  
>        return entry >= argz + argz_len ? NULL : (char *) entry;
>      }
> diff --git a/lib/cpu-supports.c b/lib/cpu-supports.c
> index 9057d151eb..a1505f8bd6 100644
> --- a/lib/cpu-supports.c
> +++ b/lib/cpu-supports.c
> @@ -66,7 +66,7 @@ hwcap_allowed (char const *glibc_hwcap)
>  
>    char const *sentinel = strchr (hwcaps, ':');
>    if (! sentinel)
> -    sentinel = hwcaps + strlen (hwcaps);
> +    sentinel = strnul (hwcaps);
>    char const *cap = hwcaps;
>    while ((cap = strstr (cap, glibc_hwcap)) && cap < sentinel)
>      { /* Check it's not a partial match.  */
> diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c
> index 26d3e358de..3269d7f71b 100644
> --- a/lib/file-has-acl.c
> +++ b/lib/file-has-acl.c
> @@ -145,7 +145,7 @@ aclinfo_has_xattr (struct aclinfo const *ai, char const 
> *xattr)
>    if (0 < ai->size)
>      {
>        char const *blim = ai->buf + ai->size;
> -      for (char const *b = ai->buf; b < blim; b += strlen (b) + 1)
> +      for (char const *b = ai->buf; b < blim; b = strnul (b) + 1)
>          for (char const *a = xattr; *a == *b; a++, b++)
>            if (!*a)
>              return true;
> diff --git a/lib/inet_ntop.c b/lib/inet_ntop.c
> index 599ca4fb72..dff25c5f6d 100644
> --- a/lib/inet_ntop.c
> +++ b/lib/inet_ntop.c
> @@ -225,7 +225,7 @@ inet_ntop6 (const unsigned char *src, char *dst, 
> socklen_t size)
>          {
>            if (!inet_ntop4 (src + 12, tp, sizeof tmp - (tp - tmp)))
>              return (NULL);
> -          tp += strlen (tp);
> +          tp = strnul (tp);
>            break;
>          }
>        {
> diff --git a/lib/link.c b/lib/link.c
> index 9053eef28f..6198929943 100644
> --- a/lib/link.c
> +++ b/lib/link.c
> @@ -113,7 +113,7 @@ link (const char *file1, const char *file2)
>      return -1;
>    {
>      struct stat st;
> -    char *p = strchr (dir, '\0');
> +    char *p = strnul (dir);
>      while (dir < p && (*--p != '/' && *p != '\\'));
>      *p = '\0';
>      if (p != dir && stat (dir, &st) != 0 && errno != EOVERFLOW)
> diff --git a/lib/localename-unsafe.c b/lib/localename-unsafe.c
> index 12748cba28..d490fe89be 100644
> --- a/lib/localename-unsafe.c
> +++ b/lib/localename-unsafe.c
> @@ -2558,7 +2558,7 @@ enum_locales_fn (LPSTR locale_num_str)
>      {
>        strcat (locval, "_");
>        if (GetLocaleInfo (try_lcid, LOCALE_SENGCOUNTRY,
> -                        locval + strlen (locval), LOCALE_NAME_MAX_LENGTH))
> +                        strnul (locval), LOCALE_NAME_MAX_LENGTH))
>         {
>           size_t locval_len = strlen (locval);
>  
> diff --git a/lib/mbspcasecmp.c b/lib/mbspcasecmp.c
> index 696cb89fb2..a72a20d4fe 100644
> --- a/lib/mbspcasecmp.c
> +++ b/lib/mbspcasecmp.c
> @@ -45,7 +45,7 @@ mbspcasecmp (const char *string, const char *prefix)
>         mbsncasecmp (string, prefix, mbslen (prefix))
>       just with small optimizations.  */
>    if (string == prefix)
> -    return (char *) (string + strlen (string));
> +    return (char *) strnul (string);
>  
>    const char *iter1 = string;
>    const char *iter2 = prefix;
> diff --git a/lib/opendir.c b/lib/opendir.c
> index 3890206b79..ea3d2ef166 100644
> --- a/lib/opendir.c
> +++ b/lib/opendir.c
> @@ -111,7 +111,7 @@ opendir (const char *dir_name)
>    {
>      char *p;
>  
> -    p = dir_name_mask + strlen (dir_name_mask);
> +    p = strnul (dir_name_mask);
>      if (p > dir_name_mask && !ISSLASH (p[-1]))
>        *p++ = '\\';
>      *p++ = '*';
> diff --git a/lib/parse-duration.c b/lib/parse-duration.c
> index 5bea54f4e6..5abf6a1331 100644
> --- a/lib/parse-duration.c
> +++ b/lib/parse-duration.c
> @@ -192,7 +192,7 @@ parse_year_month_day (cch_t * pz, cch_t * ps)
>    res = parse_scaled_value (res, &pz, ps, SEC_PER_MONTH);
>  
>    pz++; /* over the second '-' */
> -  ps = pz + strlen (pz);
> +  ps = strnul (pz);
>    return parse_scaled_value (res, &pz, ps, SEC_PER_DAY);
>  }
>  
> @@ -292,7 +292,7 @@ parse_hour_minute_second (cch_t * pz, cch_t * ps)
>    res = parse_scaled_value (res, &pz, ps, SEC_PER_MIN);
>  
>    pz++;
> -  ps = pz + strlen (pz);
> +  ps = strnul (pz);
>    return parse_scaled_value (res, &pz, ps, 1);
>  }
>  
> @@ -408,7 +408,7 @@ trim (char * pz)
>  
>    /* trim trailing white space */
>    {
> -    char * pe = pz + strlen (pz);
> +    char * pe = strnul (pz);
>      while ((pe > pz) && isspace ((unsigned char)pe[-1]))
>        pe--;
>      *pe = NUL;
> diff --git a/lib/setlocale.c b/lib/setlocale.c
> index c4f006105d..3871a3fa16 100644
> --- a/lib/setlocale.c
> +++ b/lib/setlocale.c
> @@ -767,7 +767,7 @@ setlocale_unixlike (int category, const char *locale)
>              const char *territory_start = underscore + 1;
>              const char *territory_end = strchr (territory_start, '@');
>              if (territory_end == NULL)
> -              territory_end = territory_start + strlen (territory_start);
> +              territory_end = strnul (territory_start);
>  
>              char ll_buf[64];
>              memcpy (ll_buf, llCC_buf, underscore - llCC_buf);
> diff --git a/lib/strftime.c b/lib/strftime.c
> index 8d32023729..33fa2e017b 100644
> --- a/lib/strftime.c
> +++ b/lib/strftime.c
> @@ -1358,7 +1358,7 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG 
> (size_t maxsize)
>              mbstate_t mbstate = mbstate_zero;
>  
>              if (! format_end)
> -              format_end = f + strlen (f) + 1;
> +              format_end = strnul (f) + 1;
>              size_t fsize = format_end - f;
>  
>              size_t len = 0;
> diff --git a/lib/striconv.c b/lib/striconv.c
> index 6aded51e14..bf169822d8 100644
> --- a/lib/striconv.c
> +++ b/lib/striconv.c
> @@ -258,7 +258,7 @@ str_cd_iconv (const char *src, iconv_t cd)
>  
>      for (;;)
>        {
> -        /* Here inptr + inbytes_remaining = src + strlen (src),
> +        /* Here inptr + inbytes_remaining = strnul (src),
>                  outptr + outbytes_remaining = result + result_size - 1.  */
>          size_t res = iconv (cd,
>                              (ICONV_CONST char **) &inptr, &inbytes_remaining,
> diff --git a/lib/strncat.c b/lib/strncat.c
> index 5e77ea8846..5441ac756b 100644
> --- a/lib/strncat.c
> +++ b/lib/strncat.c
> @@ -23,7 +23,7 @@
>  char *
>  strncat (char *dest, const char *src, size_t n)
>  {
> -  char *destptr = dest + strlen (dest);
> +  char *destptr = strnul (dest);
>  
>    for (; n > 0 && (*destptr = *src) != '\0'; src++, destptr++, n--)
>      ;
> diff --git a/lib/term-style-control.c b/lib/term-style-control.c
> index 9ab1c8ac08..4ed5bf7e0a 100644
> --- a/lib/term-style-control.c
> +++ b/lib/term-style-control.c
> @@ -215,7 +215,7 @@ log_signal_handler_called (int sig)
>  {
>    char message[100];
>    strcpy (message, "Signal handler for signal ");
> -  simple_signal_string (message + strlen (message), sig);
> +  simple_signal_string (strnul (message), sig);
>    strcat (message, " called.\n");
>    log_message (message);
>  }
> @@ -434,9 +434,9 @@ tcsetattr_failed (char message[100], const char *caller)
>    int errnum = errno;
>    strcpy (message, caller);
>    strcat (message, ": tcsetattr(fd=");
> -  sprintf_integer (message + strlen (message), active_fd);
> +  sprintf_integer (strnul (message), active_fd);
>    strcat (message, ") failed, errno=");
> -  simple_errno_string (message + strlen (message), errnum);
> +  simple_errno_string (strnul (message), errnum);
>    strcat (message, "\n");
>  }
>  
> diff --git a/lib/time_rz.c b/lib/time_rz.c
> index 811240e6da..0e8ea47e79 100644
> --- a/lib/time_rz.c
> +++ b/lib/time_rz.c
> @@ -146,7 +146,7 @@ save_abbr (timezone_t tz, struct tm *tm)
>                break;
>              }
>  
> -          zone_copy += strlen (zone_copy) + 1;
> +          zone_copy = strnul (zone_copy) + 1;
>            if (!*zone_copy && tz->next)
>              {
>                tz = tz->next;
> diff --git a/lib/vc-mtime.c b/lib/vc-mtime.c
> index ad47ef9e5e..208a3d2c36 100644
> --- a/lib/vc-mtime.c
> +++ b/lib/vc-mtime.c
> @@ -250,7 +250,7 @@ git_mtime (struct timespec *mtime, const char *filename)
>            char *endptr;
>            unsigned long git_log_time;
>            if (xstrtoul (line, &endptr, 10, &git_log_time, NULL) == LONGINT_OK
> -              && endptr == line + strlen (line))
> +              && endptr == strnul (line))
>              {
>                mtime->tv_sec = git_log_time;
>                mtime->tv_nsec = 0;
> @@ -885,7 +885,7 @@ max_vc_mtime (struct timespec *max_of_mtimes,
>                              char *endptr;
>                              unsigned long git_log_time;
>                              if (!(xstrtoul (line, &endptr, 10, 
> &git_log_time, NULL) == LONGINT_OK
> -                                  && endptr == line + strlen (line)))
> +                                  && endptr == strnul (line)))
>                                {
>                                  fprintf (stderr, "vc-mtime: git log output 
> not as expected\n");
>                                  goto git_log_fail1;
> diff --git a/modules/argz b/modules/argz
> index cb8166fe48..6f5ee3ff8f 100644
> --- a/modules/argz
> +++ b/modules/argz
> @@ -14,6 +14,7 @@ realloc-posix   [test -n "$ARGZ_H"]
>  stpcpy          [test -n "$ARGZ_H"]
>  strndup         [test -n "$ARGZ_H"]
>  strnlen         [test -n "$ARGZ_H"]
> +strnul          [test -n "$ARGZ_H"]
>  strstr          [test -n "$ARGZ_H"]
>  
>  configure.ac:
> diff --git a/modules/c-nstrftime b/modules/c-nstrftime
> index a0e84882fc..b60b48e154 100644
> --- a/modules/c-nstrftime
> +++ b/modules/c-nstrftime
> @@ -19,6 +19,7 @@ libc-config
>  locale-h
>  bool
>  stdckdint-h
> +strnul
>  time_rz
>  
>  configure.ac:
> diff --git a/modules/cpu-supports b/modules/cpu-supports
> index 8f5871d46f..1e6723f865 100644
> --- a/modules/cpu-supports
> +++ b/modules/cpu-supports
> @@ -10,6 +10,7 @@ attribute
>  bool
>  c99
>  stringeq
> +strnul
>  
>  configure.ac:
>  AC_REQUIRE([AC_C_INLINE])
> diff --git a/modules/file-has-acl b/modules/file-has-acl
> index a128e64483..d769f2bea4 100644
> --- a/modules/file-has-acl
> +++ b/modules/file-has-acl
> @@ -19,6 +19,7 @@ free-posix
>  limits-h
>  stdint-h
>  stringeq
> +strnul
>  malloc-posix
>  ssize_t
>  stat
> diff --git a/modules/fprintftime b/modules/fprintftime
> index 3700a3b45e..fd3e7073fa 100644
> --- a/modules/fprintftime
> +++ b/modules/fprintftime
> @@ -10,6 +10,7 @@ Depends-on:
>  stdio-h
>  sys_types-h
>  nstrftime
> +strnul
>  time_rz
>  
>  configure.ac:
> diff --git a/modules/inet_ntop b/modules/inet_ntop
> index fa6979b2ee..bd80bde32f 100644
> --- a/modules/inet_ntop
> +++ b/modules/inet_ntop
> @@ -12,6 +12,7 @@ extensions
>  sys_socket-h    [test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1]
>  errno-h         [test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1]
>  netinet_in-h    [test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1]
> +strnul          [test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1]
>  
>  configure.ac:
>  gl_FUNC_INET_NTOP
> diff --git a/modules/link b/modules/link
> index f7097b62d7..41011a9382 100644
> --- a/modules/link
> +++ b/modules/link
> @@ -10,6 +10,7 @@ unistd-h
>  free-posix      [test $HAVE_LINK = 0 || test $REPLACE_LINK = 1]
>  stat            [test $HAVE_LINK = 0 || test $REPLACE_LINK = 1]
>  strdup-posix    [test $HAVE_LINK = 0 || test $REPLACE_LINK = 1]
> +strnul          [test $HAVE_LINK = 0 || test $REPLACE_LINK = 1]
>  sys_stat-h      [test $HAVE_LINK = 0 || test $REPLACE_LINK = 1]
>  
>  configure.ac:
> diff --git a/modules/localename-unsafe b/modules/localename-unsafe
> index 5785dd4462..4545c347ea 100644
> --- a/modules/localename-unsafe
> +++ b/modules/localename-unsafe
> @@ -19,6 +19,7 @@ locale-h
>  strdup
>  stringeq
>  strncpy
> +strnul
>  windows-mutex
>  getlocalename_l-unsafe
>  setlocale-null-unlocked
> diff --git a/modules/localename-unsafe-limited 
> b/modules/localename-unsafe-limited
> index 1593ce2784..701170ebcf 100644
> --- a/modules/localename-unsafe-limited
> +++ b/modules/localename-unsafe-limited
> @@ -18,6 +18,7 @@ extensions
>  locale-h
>  strdup
>  strncpy
> +strnul
>  windows-mutex
>  getlocalename_l-unsafe-limited
>  setlocale-null-unlocked
> diff --git a/modules/mbspcasecmp b/modules/mbspcasecmp
> index 29a5f05172..519829ce3f 100644
> --- a/modules/mbspcasecmp
> +++ b/modules/mbspcasecmp
> @@ -8,6 +8,7 @@ Depends-on:
>  c32tolower
>  mbuiterf
>  string-h
> +strnul
>  
>  configure.ac:
>  gl_STRING_MODULE_INDICATOR([mbspcasecmp])
> diff --git a/modules/nstrftime b/modules/nstrftime
> index 4cb87d28af..761f1483c0 100644
> --- a/modules/nstrftime
> +++ b/modules/nstrftime
> @@ -26,6 +26,7 @@ localename-unsafe [case "$host_os" in darwin*) false ;; *) 
> true ;; esac]
>  bool
>  stdckdint-h
>  stdint-h
> +strnul
>  time_rz
>  
>  configure.ac:
> diff --git a/modules/nstrftime-limited b/modules/nstrftime-limited
> index 18fc11a51a..c1bfef9116 100644
> --- a/modules/nstrftime-limited
> +++ b/modules/nstrftime-limited
> @@ -26,6 +26,7 @@ localcharset
>  localename-unsafe-limited [case "$host_os" in darwin*) false ;; *) true ;; 
> esac]
>  bool
>  stdckdint-h
> +strnul
>  time_rz
>  
>  configure.ac:
> diff --git a/modules/opendir b/modules/opendir
> index b9a6dfe2d7..631d138022 100644
> --- a/modules/opendir
> +++ b/modules/opendir
> @@ -13,6 +13,7 @@ filename        [test $HAVE_OPENDIR = 0 || test 
> $REPLACE_OPENDIR = 1]
>  unistd-h        [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1]
>  closedir        [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1]
>  dirfd           [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1]
> +strnul          [test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1]
>  
>  configure.ac:
>  gl_FUNC_OPENDIR
> diff --git a/modules/parse-duration b/modules/parse-duration
> index 6184dc4315..4aa4fb2b90 100644
> --- a/modules/parse-duration
> +++ b/modules/parse-duration
> @@ -7,6 +7,7 @@ lib/parse-duration.c
>  
>  Depends-on:
>  intprops
> +strnul
>  
>  configure.ac:
>  
> diff --git a/modules/savedir-tests b/modules/savedir-tests
> index 964d5be20a..8e5433770d 100644
> --- a/modules/savedir-tests
> +++ b/modules/savedir-tests
> @@ -7,6 +7,7 @@ bool
>  creat
>  close
>  mkdir
> +strnul
>  
>  configure.ac:
>  
> diff --git a/modules/setlocale b/modules/setlocale
> index 5f71838011..fd74033495 100644
> --- a/modules/setlocale
> +++ b/modules/setlocale
> @@ -11,6 +11,7 @@ stringeq
>  setlocale-fixes    [test $NEED_SETLOCALE_IMPROVED = 1]
>  localename         [test $NEED_SETLOCALE_IMPROVED = 1]
>  localename-environ [test $NEED_SETLOCALE_IMPROVED = 1]
> +strnul             [test $NEED_SETLOCALE_IMPROVED = 1]
>  setlocale-null     [test $NEED_SETLOCALE_MTSAFE = 1]
>  
>  configure.ac:
> diff --git a/modules/striconv b/modules/striconv
> index 53b4b55ea5..22ff07ecb0 100644
> --- a/modules/striconv
> +++ b/modules/striconv
> @@ -10,6 +10,7 @@ iconv
>  iconv_open
>  free-posix
>  strdup
> +strnul
>  c-strcasecmp
>  
>  configure.ac:
> diff --git a/modules/strncat b/modules/strncat
> index 7902267c04..b2213ec5f1 100644
> --- a/modules/strncat
> +++ b/modules/strncat
> @@ -8,6 +8,7 @@ m4/mmap-anon.m4
>  
>  Depends-on:
>  string-h
> +strnul
>  
>  configure.ac:
>  gl_FUNC_STRNCAT
> diff --git a/modules/term-style-control b/modules/term-style-control
> index 7159604ad1..d5c1529930 100644
> --- a/modules/term-style-control
> +++ b/modules/term-style-control
> @@ -14,6 +14,7 @@ sigprocmask
>  full-write
>  fstat
>  same-inode
> +strnul
>  xalloc-die
>  
>  configure.ac:
> diff --git a/modules/time_rz b/modules/time_rz
> index 2479f04d17..187c477bb2 100644
> --- a/modules/time_rz
> +++ b/modules/time_rz
> @@ -16,6 +16,7 @@ idx            [test $HAVE_TZALLOC = 0 || test 
> $REPLACE_LOCALTIME_RZ = 1 || test
>  setenv         [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
>  bool           [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
>  stringeq       [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
> +strnul         [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
>  time_r         [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
>  timegm         [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
>  tzset          [test $HAVE_TZALLOC = 0 || test $REPLACE_LOCALTIME_RZ = 1 || 
> test $REPLACE_MKTIME_Z = 1]
> diff --git a/modules/vc-mtime b/modules/vc-mtime
> index 44f56a4a2c..b40ef32e6e 100644
> --- a/modules/vc-mtime
> +++ b/modules/vc-mtime
> @@ -10,6 +10,7 @@ time-h
>  bool
>  spawn-pipe
>  stringeq
> +strnul
>  wait-process
>  execute
>  safe-read
> diff --git a/tests/test-savedir.c b/tests/test-savedir.c
> index 95abc7833b..c95408c52f 100644
> --- a/tests/test-savedir.c
> +++ b/tests/test-savedir.c
> @@ -44,7 +44,7 @@ test_savedir_sort_none (void)
>    memset (seen, 0, sizeof seen);
>  
>    /* Scan through the file names.  */
> -  for (char *namep = name_space; *namep != '\0'; namep += strlen (namep) + 1)
> +  for (char *namep = name_space; *namep != '\0'; namep = strnul (namep) + 1)
>      {
>        int index = *namep - 'a';
>        ASSERT (strlen (namep) == 1);
> @@ -68,7 +68,7 @@ test_savedir_sort_name (void)
>  
>    /* Check that files "a" to "z" appear in order.  */
>    for (char *namep = name_space; *namep != '\0';
> -       namep += strlen (namep) + 1, i += 1)
> +       namep = strnul (namep) + 1, i += 1)
>      {
>        ASSERT (strlen (namep) == 1);
>        ASSERT (*namep - 'a' == i);
> 
> 
> 

-- 
<https://www.alejandro-colomar.es>

Attachment: signature.asc
Description: PGP signature

Reply via email to