]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
lib/utmp.c: Use the appropriate autotools macros for struct utmpx
authorAlejandro Colomar <alx@kernel.org>
Tue, 20 Feb 2024 18:15:41 +0000 (19:15 +0100)
committerAlejandro Colomar <alx@kernel.org>
Wed, 21 Feb 2024 14:43:25 +0000 (15:43 +0100)
Recently, we started using utmpx instead of utmp, and we updated
<./configure.ac> to do the checks for 'struct utmpx' instead of
'struct utmp'.  However, I forgot to update the preprocessor
conditionals accordingly.

Fixes: 64bcb54fa962 ("lib/, src/, configure.ac: Use utmpx instead of utmp")
Link: <https://github.com/shadow-maint/shadow/pull/954>
Cc: Firas Khalil Khana <firasuke@gmail.com>
Cc: "A. Wilfox" <https://github.com/awilfox>
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
lib/utmp.c

index 9c03a51edef761894c847913a6bf42f6c3819d4c..08e9b62503b71475e67ff8b3c2313f96aef6e6e4 100644 (file)
@@ -183,7 +183,7 @@ get_session_host(char **out)
 
        ut = get_current_utmp();
 
-#if defined(HAVE_STRUCT_UTMP_UT_HOST)
+#if defined(HAVE_STRUCT_UTMPX_UT_HOST)
        if ((ut != NULL) && (ut->ut_host[0] != '\0')) {
                char  *hostname;
 
@@ -258,7 +258,7 @@ prepare_utmp(const char *name, const char *line, const char *host,
            && ('\0' != host[0])) {
                hostname = XMALLOC(strlen(host) + 1, char);
                strcpy (hostname, host);
-#if defined(HAVE_STRUCT_UTMP_UT_HOST)
+#if defined(HAVE_STRUCT_UTMPX_UT_HOST)
        } else if (   (NULL != ut)
                   && ('\0' != ut->ut_host[0])) {
                hostname = XMALLOC(NITEMS(ut->ut_host) + 1, char);
@@ -283,20 +283,20 @@ prepare_utmp(const char *name, const char *line, const char *host,
                /* XXX - assumes /dev/tty?? */
                STRNCPY(utent->ut_id, line + 3);
        }
-#if defined(HAVE_STRUCT_UTMP_UT_NAME)
+#if defined(HAVE_STRUCT_UTMPX_UT_NAME)
        STRNCPY(utent->ut_name, name);
 #endif
        STRNCPY(utent->ut_user, name);
        if (NULL != hostname) {
                struct addrinfo *info = NULL;
-#if defined(HAVE_STRUCT_UTMP_UT_HOST)
+#if defined(HAVE_STRUCT_UTMPX_UT_HOST)
                STRNCPY(utent->ut_host, hostname);
 #endif
-#if defined(HAVE_STRUCT_UTMP_UT_SYSLEN)
+#if defined(HAVE_STRUCT_UTMPX_UT_SYSLEN)
                utent->ut_syslen = MIN (strlen (hostname),
                                        sizeof (utent->ut_host));
 #endif
-#if defined(HAVE_STRUCT_UTMP_UT_ADDR) || defined(HAVE_STRUCT_UTMP_UT_ADDR_V6)
+#if defined(HAVE_STRUCT_UTMPX_UT_ADDR) || defined(HAVE_STRUCT_UTMPX_UT_ADDR_V6)
                if (getaddrinfo (hostname, NULL, NULL, &info) == 0) {
                        /* getaddrinfo might not be reliable.
                         * Just try to log what may be useful.
@@ -304,13 +304,13 @@ prepare_utmp(const char *name, const char *line, const char *host,
                        if (info->ai_family == AF_INET) {
                                struct sockaddr_in *sa =
                                        (struct sockaddr_in *) info->ai_addr;
-# if defined(HAVE_STRUCT_UTMP_UT_ADDR)
+# if defined(HAVE_STRUCT_UTMPX_UT_ADDR)
                                memcpy (&(utent->ut_addr),
                                        &(sa->sin_addr),
                                        MIN (sizeof (utent->ut_addr),
                                             sizeof (sa->sin_addr)));
 # endif
-# if defined(HAVE_STRUCT_UTMP_UT_ADDR_V6)
+# if defined(HAVE_STRUCT_UTMPX_UT_ADDR_V6)
                                memcpy (utent->ut_addr_v6,
                                        &(sa->sin_addr),
                                        MIN (sizeof (utent->ut_addr_v6),
@@ -332,10 +332,10 @@ prepare_utmp(const char *name, const char *line, const char *host,
        /* ut_exit is only for DEAD_PROCESS */
        utent->ut_session = getsid (0);
        if (gettimeofday (&tv, NULL) == 0) {
-#if defined(HAVE_STRUCT_UTMP_UT_TIME)
+#if defined(HAVE_STRUCT_UTMPX_UT_TIME)
                utent->ut_time = tv.tv_sec;
 #endif
-#if defined(HAVE_STRUCT_UTMP_UT_XTIME)
+#if defined(HAVE_STRUCT_UTMPX_UT_XTIME)
                utent->ut_xtime = tv.tv_usec;
 #endif
                utent->ut_tv.tv_sec  = tv.tv_sec;