mirror of
https://git.yoctoproject.org/poky
synced 2026-06-03 13:49:49 +00:00
pseudo: support --without-passwd-fallback configuration option
A bug in pseudo 1.6.2 results in lock failures if this option is present. (From OE-Core rev: eb5b99e4fbfdf31497a4606fc55cab268ec8d654) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
16e8b40b50
commit
d2b8576bfa
+56
@@ -0,0 +1,56 @@
|
|||||||
|
From e11468a47369596f57c5e99bd0a3dd58b2c6d5e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Peter A. Bigot" <pab@pabigot.com>
|
||||||
|
Date: Sun, 12 Oct 2014 08:27:14 -0500
|
||||||
|
Subject: [PATCH 1/3] pseudo_client.c: protect pwd_lck against magic
|
||||||
|
|
||||||
|
While attempting to diagnose unexpected uid/gid assignment I added
|
||||||
|
--without-passwd-fallback to the pseudo build. This caused build
|
||||||
|
failures due to inability to lock /etc/passwd.
|
||||||
|
|
||||||
|
Instrumentation revealed that attempts to create the lock file ended up
|
||||||
|
with pseudo_etc_file() creating the correct lock name, but the
|
||||||
|
subsequent open had an extra PSEUDO_PASSWD directory prefix causing
|
||||||
|
it to fail.
|
||||||
|
|
||||||
|
Inspection of pseudo_client shows the only other use of PSEUDO_ETC_FILE
|
||||||
|
to be protected against magic. Applying the same shield to the
|
||||||
|
unprotected calls in pseudo_pwd_lck_{open,close} fixes the issue.
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
|
||||||
|
---
|
||||||
|
pseudo_client.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/pseudo_client.c b/pseudo_client.c
|
||||||
|
index 8deaa1b..442dd19 100644
|
||||||
|
--- a/pseudo_client.c
|
||||||
|
+++ b/pseudo_client.c
|
||||||
|
@@ -416,20 +416,24 @@ pseudo_pwd_lck_open(void) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pseudo_pwd_lck_close();
|
||||||
|
+ pseudo_antimagic();
|
||||||
|
pseudo_pwd_lck_fd = PSEUDO_ETC_FILE(".pwd.lock",
|
||||||
|
pseudo_pwd_lck_name, O_RDWR | O_CREAT);
|
||||||
|
+ pseudo_magic();
|
||||||
|
return pseudo_pwd_lck_fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
pseudo_pwd_lck_close(void) {
|
||||||
|
if (pseudo_pwd_lck_fd != -1) {
|
||||||
|
+ pseudo_antimagic();
|
||||||
|
close(pseudo_pwd_lck_fd);
|
||||||
|
if (pseudo_pwd_lck_name) {
|
||||||
|
unlink(pseudo_pwd_lck_name);
|
||||||
|
free(pseudo_pwd_lck_name);
|
||||||
|
pseudo_pwd_lck_name = 0;
|
||||||
|
}
|
||||||
|
+ pseudo_magic();
|
||||||
|
pseudo_pwd_lck_fd = -1;
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
||||||
@@ -2,6 +2,7 @@ require pseudo.inc
|
|||||||
|
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
|
http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
|
||||||
|
file://0001-pseudo_client.c-protect-pwd_lck-against-magic.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "4d7b4f9d1b4aafa680ce94a5a9a52f1f"
|
SRC_URI[md5sum] = "4d7b4f9d1b4aafa680ce94a5a9a52f1f"
|
||||||
|
|||||||
Reference in New Issue
Block a user