Source: pam
Version: 1.7.0-5
Severity: important
Tags: ftbfs patch
Hello,
pam currently fails to build on hurd-any for a couple of upstream
reasons, and a debian reason. The attached patches fix them:
- hurd-fsuid fixes the usage of the linuxish setfsuid
- hurd-host-name-max comes from upstream, to fix a HOST_NAME_MAX use
- hurd-tcgeta fixes the usage of the non-posix TCGETA
- patch fixes the list of installed binaries according to what the
upstream meson files build.
chmod +x debian/libpam-modules-bin.install
is then needed to make the packaging patch work.
With regards,
Samuel
-- System Information:
Debian Release: 13.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'testing-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'oldstable-proposed-updates-debug'), (500, 'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (
1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental') Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64
Kernel: Linux 6.15.0 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
--
Samuel
<y> update-menus: relocation error: update-menus: symbol _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E, version GLIBCPP_3.2 not defined in file libstdc++.so.5 with link time reference
<y> quoi que �a peut bien vouloir dire ?
<D> N a eu la meme merde
<y> c �a que �a veut dire ? wow, c'est bien crypt� :)
-+- #ens-mim s'entraide -+-
https://github.com/linux-pam/linux-pam/pull/917
diff --git a/libpam/pam_modutil_priv.c b/libpam/pam_modutil_priv.c
index a463e06a..456987ae 100644
--- a/libpam/pam_modutil_priv.c
+++ b/libpam/pam_modutil_priv.c
@@ -14,7 +14,9 @@
#include <syslog.h>
#include <pwd.h>
#include <grp.h>
+#ifdef HAVE_SYS_FSUID_H
#include <sys/fsuid.h>
+#endif /* HAVE_SYS_FSUID_H */
/*
* Two setfsuid() calls in a row are necessary to check
@@ -22,17 +24,35 @@
*/
static int change_uid(uid_t uid, uid_t *save)
{
+#ifdef HAVE_SYS_FSUID_H
uid_t tmp = setfsuid(uid);
if (save)
*save = tmp;
return (uid_t) setfsuid(uid) == uid ? 0 : -1;
+#else
+ uid_t tmp = geteuid();
+ if (save)
+ *save = tmp;
+ if (setresuid(-1, uid, tmp) < 0)
+ return -1;
+ return 0;
+#endif
}
static int change_gid(gid_t gid, gid_t *save)
{
+#ifdef HAVE_SYS_FSUID_H
gid_t tmp = setfsgid(gid);
if (save)
*save = tmp;
return (gid_t) setfsgid(gid) == gid ? 0 : -1;
+#else
+ uid_t tmp = getegid();
+ if (save)
+ *save = tmp;
+ if (setresgid(-1, gid, tmp) < 0)
+ return -1;
+ return 0;
+#endif
}
static int cleanup(struct pam_modutil_privs *