Skip to content

Conversation

@alejandro-colomar
Copy link
Collaborator

@alejandro-colomar alejandro-colomar commented Oct 19, 2025

@ikerexxe , as you said you like this more than the addition of eprintf(), I've split these two patches from the other larger PR, so that this can be merged earlier.


Revisions:

v1b
  • Rebase
$ git rd 
1:  093ab3f0 = 1:  6a5f2898 lib/getdef.h: Add missing includes
2:  2f4eec2b ! 2:  c099a5f9 lib/string/: strerrno(): Add function
    @@ Commit message
     
      ## lib/Makefile.am ##
     @@ lib/Makefile.am: libshadow_la_SOURCES = \
    -   string/strdup/xstrdup.h \
    -   string/strdup/xstrndup.c \
    -   string/strdup/xstrndup.h \
    +   string/strdup/strndupa.h \
    +   string/strdup/strndup.c \
    +   string/strdup/strndup.h \
     +  string/strerrno.c \
     +  string/strerrno.h \
        string/strftime.c \
3:  ad1c40cf ! 3:  3519a8c7 lib/, src/: Use strerrno() instead of its pattern
    @@ lib/addgrps.c: add_groups(const char *list)
        }
      
     
    - ## lib/alloc/x/xcalloc.c ##
    -@@
    - 
    - #include "defines.h"
    - #include "shadowlog.h"
    -+#include "string/strerrno.h"
    - 
    - 
    - void *
    -@@ lib/alloc/x/xcalloc.c: xcalloc(size_t nmemb, size_t size)
    -   return p;
    - 
    - x:
    --  fprintf(log_get_logfd(), _("%s: %s\n"),
    --          log_get_progname(), strerror(errno));
    -+  fprintf(log_get_logfd(), _("%s: %s\n"), log_get_progname(), strerrno());
    -   exit(13);
    - }
    -
    - ## lib/alloc/x/xrealloc.c ##
    -@@
    - #include "alloc/reallocf.h"
    - #include "defines.h"
    - #include "shadowlog.h"
    -+#include "string/strerrno.h"
    - 
    - 
    - void *
    -@@ lib/alloc/x/xrealloc.c: xreallocarray(void *p, size_t nmemb, size_t size)
    -   return p;
    - 
    - x:
    --  fprintf(log_get_logfd(), _("%s: %s\n"),
    --          log_get_progname(), strerror(errno));
    -+  fprintf(log_get_logfd(), _("%s: %s\n"), log_get_progname(), strerrno());
    -   exit(13);
    - }
    -
      ## lib/commonio.c ##
     @@
      #include "string/sprintf/snprintf.h"
    @@ lib/commonio.c: static int do_lock_file (const char *file, const char *lock, boo
     
      ## lib/copydir.c ##
     @@
    - #include "string/sprintf/xaprintf.h"
    + #include "string/sprintf/aprintf.h"
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
     +#include "string/strerrno.h"
    @@ lib/copydir.c: static void error_acl (MAYBE_UNUSED struct error_context *ctx, co
      }
      
     
    + ## lib/exit_if_null.h ##
    +@@
    + 
    + #include "config.h"
    + 
    +-#include <errno.h>
    + #include <stddef.h>
    + #include <stdio.h>
    + #include <stdlib.h>
    +-#include <string.h>
    + 
    + #include "shadowlog.h"
    ++#include "string/strerrno.h"
    + 
    + 
    + /*
    +@@ lib/exit_if_null.h: inline void
    + exit_if_null_(void *p)
    + {
    +   if (p == NULL) {
    +-          fprintf(log_get_logfd(), "%s: %s\n",
    +-                  log_get_progname(), strerror(errno));
    ++          fprintf(log_get_logfd(), "%s: %s\n", log_get_progname(), strerrno());
    +           exit(13);
    +   }
    + }
    +
      ## lib/find_new_gid.c ##
     @@
      #include "groupio.h"
    @@ lib/idmapping.c: void write_mapping(int proc_dir_fd, int ranges, const struct ma
     
      ## lib/prefix_flag.c ##
     @@
    - #include "string/sprintf/xaprintf.h"
    + #include "string/sprintf/aprintf.h"
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
     +#include "string/strerrno.h"
    @@ lib/spawn.c: run_command(const char *cmd, const char *argv[],
        }
      
     
    - ## lib/string/strtok/xastrsep2ls.h ##
    -@@
    - #include "attr.h"
    - #include "shadowlog.h"
    - #include "string/strtok/astrsep2ls.h"
    -+#include "string/strerrno.h"
    - 
    - 
    - ATTR_ACCESS(read_write, 1) ATTR_ACCESS(write_only, 3)
    -@@ lib/string/strtok/xastrsep2ls.h: xastrsep2ls(char *s, const char *restrict delim, size_t *restrict np)
    - 
    -   return ls;
    - x:
    --  fprintf(log_get_logfd(), "%s: %s\n",
    --          log_get_progname(), strerror(errno));
    -+  fprintf(log_get_logfd(), "%s: %s\n", log_get_progname(), strerrno());
    -   exit(13);
    - }
    - 
    -
      ## lib/tcbfuncs.c ##
     @@
      #include "shadowlog_internal.h"
    @@ src/chage.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcpy/strtcpy.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "string/strftime.h"
      #include "time/day_to_str.h"
    @@ src/gpasswd.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcpy/strtcpy.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
    ++
      
      struct option_flags {
        bool chroot;
    @@ src/login.c
     @@
      #include "string/strcmp/strprefix.h"
      #include "string/strcpy/strtcpy.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "string/strftime.h"
      
    @@ src/newgrp.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      
      #include <assert.h>
    @@ src/newusers.c
     @@
      #include "string/sprintf/snprintf.h"
      #include "string/strcmp/streq.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "string/strtok/stpsep.h"
      #include "string/strtok/strsep2arr.h"
    @@ src/passwd.c
     @@
      #include "string/strcmp/strprefix.h"
      #include "string/strcpy/strtcpy.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "time/day_to_str.h"
      
    @@ src/useradd.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "string/strtok/stpsep.h"
      
    @@ src/userdel.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      
      
    @@ src/usermod.c
     @@
      #include "string/strcmp/streq.h"
      #include "string/strcmp/strprefix.h"
    - #include "string/strdup/xstrdup.h"
    + #include "string/strdup/strdup.h"
     +#include "string/strerrno.h"
      #include "time/day_to_str.h"
      #include "typetraits.h"
    @@ src/usermod.c: static void update_faillog (void)
     
      ## src/vipw.c ##
     @@
    + #include "string/sprintf/aprintf.h"
      #include "string/sprintf/snprintf.h"
    - #include "string/sprintf/xaprintf.h"
      #include "string/strcmp/streq.h"
     +#include "string/strerrno.h"
      

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant