aports/main/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
Sören Tempel 531e69840c main/busybox: upgrade to 1.37.0
Not a lot of big changes in this release, mostly code shrinks and bug
fixes here and there. Hence, I don't expect too much breakage. Most patches
applied as is and didn't require any changes either. Nonetheless, I
rebased the entire patchset and removed patches that were backported.

The 0001-modutils-check-ELF-header-before-calling-finit_modul.patch
should be superseded by an upstream modutils change which checks that
if the loaded module file path ends in .ko and if not attempts to
uncompress it first. Thereby preventing compressed modules to be
passed to the kernel and causing a weird error to be emitted. Therefore,
this patch was removed

See: https://git.busybox.net/busybox/commit/?id=af5277f883e8fc2e0236aa9ecc5115ecaffd0ccb
2024-10-20 10:16:15 +00:00

107 lines
3.2 KiB
Diff

From 69641be854fa4cb6c3272f4c0c7755cf697d6de3 Mon Sep 17 00:00:00 2001
From: Laurent Bercot <ska-devel@skarnet.org>
Date: Fri, 22 Jul 2022 08:34:50 +0200
Subject: [PATCH] Avoid redefined warnings when buiding with utmps
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Do not use _PATH_UTMP or _PATH_WTMP, and do not touch
the files directly.
---
include/libbb.h | 8 +++-----
libbb/messages.c | 4 ++--
libbb/utmp.c | 10 ++++++----
util-linux/last_fancy.c | 2 +-
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/include/libbb.h b/include/libbb.h
index 01cdb1bdc..b407b4588 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -107,14 +107,12 @@
# define _PATH_UTMPX _PATH_UTMP
# else
# if !defined(__FreeBSD__)
-# include <utmp.h>
+# include <utmpx.h>
+# define _CORRECT_PATH_UTMPX "/run/utmps/utmp"
+# define _CORRECT_PATH_WTMP "/var/log/wtmp"
# else
# define _PATH_UTMPX "/var/run/utx.active"
# endif
-# include <utmpx.h>
-# if defined _PATH_UTMP && !defined _PATH_UTMPX
-# define _PATH_UTMPX _PATH_UTMP
-# endif
# endif
#endif
#if ENABLE_LOCALE_SUPPORT
diff --git a/libbb/messages.c b/libbb/messages.c
index 6914d5701..689dd0c6d 100644
--- a/libbb/messages.c
+++ b/libbb/messages.c
@@ -42,8 +42,8 @@ const int const_int_0 = 0;
#if ENABLE_FEATURE_WTMP
/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
const char bb_path_wtmp_file[] ALIGN1 =
-# if defined _PATH_WTMP
- _PATH_WTMP;
+# if defined _CORRECT_PATH_WTMP
+ _CORRECT_PATH_WTMP;
# elif defined WTMP_FILE
WTMP_FILE;
# else
diff --git a/libbb/utmp.c b/libbb/utmp.c
index bd07670db..0a2ef2c8e 100644
--- a/libbb/utmp.c
+++ b/libbb/utmp.c
@@ -8,11 +8,13 @@
*/
#include "libbb.h"
+#if 0
static void touch(const char *filename)
{
if (access(filename, R_OK | W_OK) == -1)
close(open(filename, O_WRONLY | O_CREAT, 0664));
}
+#endif
void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname)
{
@@ -45,8 +47,8 @@ void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, con
tty_name += 3;
strncpy(id, tty_name, width);
- touch(_PATH_UTMPX);
- //utmpxname(_PATH_UTMPX);
+ //touch(_CORRECT_PATH_UTMPX);
+ //utmpxname(_CORRECT_PATH_UTMPX);
setutxent();
/* Append new one (hopefully, unless we collide on ut_id) */
pututxline(&utent);
@@ -67,8 +69,8 @@ void FAST_FUNC update_utmp(pid_t pid, int new_type, const char *tty_name, const
struct utmpx utent;
struct utmpx *utp;
- touch(_PATH_UTMPX);
- //utmpxname(_PATH_UTMPX);
+ //touch(_CORRECT_PATH_UTMPX);
+ //utmpxname(_CORRECT_PATH_UTMPX);
setutxent();
/* Did init/getty/telnetd/sshd/... create an entry for us?
diff --git a/util-linux/last_fancy.c b/util-linux/last_fancy.c
index 648236229..aa7a62bbe 100644
--- a/util-linux/last_fancy.c
+++ b/util-linux/last_fancy.c
@@ -159,7 +159,7 @@ int last_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int last_main(int argc UNUSED_PARAM, char **argv)
{
struct utmpx ut;
- const char *filename = _PATH_WTMP;
+ const char *filename = _CORRECT_PATH_WTMP;
llist_t *zlist;
off_t pos;
time_t start_time;