I've seen issues where static libraries built on one host were not usable on a different host with default compiler options. This may be another one of these.
We're reverting to dynamic linking with libraries in a custom directory in sysroot that would be bundled together with shadow-native proper. Patch is coming. Alex On Fri, 19 Jan 2024 at 13:13, Chen, Qi <qi.c...@windriver.com> wrote: > > I didn't do anything particular, but as several people are sharing the > server, it's possible that its environment is somewhat messed up. I'll check > more and fix the environment. Thanks for your double check. > > Regards, > Qi > > -----Original Message----- > From: Alexander Kanavin <alex.kana...@gmail.com> > Sent: Friday, January 19, 2024 6:12 PM > To: Chen, Qi <qi.c...@windriver.com> > Cc: openembedded-core@lists.openembedded.org; Alexander Kanavin > <a...@linutronix.de> > Subject: Re: [OE-core] [PATCH v3 1/2] shadow: update 4.13 -> 4.14.2 > > I just tried poky master on ubuntu 20.04, and the issues do not appear. Do > you have a custom setup? > > Alex > > On Fri, 19 Jan 2024 at 04:06, ChenQi <qi.c...@windriver.com> wrote: > > > > I'm seeing build failures on Ubuntu 20.04. > > GCC version: 9.4.0 > > > > 1. error: parameter name omitted > > The problem is that the active_sessions_count function's definition > > lacks parameter. I did change like below: > > -unsigned long active_sessions_count(const char *name, unsigned long > > unused) > > +unsigned long active_sessions_count(const char *name, unsigned long > > unused unused_parameter) > > But then I observed another error, as shown below. > > > > 2. undefined reference to `dlsym'. > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > ../lib/.libs/libshadow.a(libshadow_la-nss.o): in function `nss_exit': > > | nss.c:(.text+0x32): undefined reference to `dlclose' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > ../lib/.libs/libshadow.a(libshadow_la-nss.o): in function `nss_init': > > | nss.c:(.text+0x1dd): undefined reference to `dlopen' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > nss.c:(.text+0x21c): undefined reference to `dlsym' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > nss.c:(.text+0x237): undefined reference to `dlsym' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > nss.c:(.text+0x253): undefined reference to `dlsym' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > nss.c:(.text+0x365): undefined reference to `dlclose' > > | /ala-lpggp72/qichen/Yocto/builds/build-master/tmp/hosttools/ld: > > nss.c:(.text+0x3b2): undefined reference to `dlerror' > > | collect2: error: ld returned 1 exit status > > | make[2]: *** [Makefile:1130: su] Error 1 > > > > On Ubuntu22.04, there's no such issue. > > > > Regards, > > Qi > > > > On 1/11/24 21:15, Alexander Kanavin wrote: > > > License-Update: formatting, spdx conversion > > > > > > Drop: > > > 0001-Disable-use-of-syslog-for-sysroot.patch > > > (issue fixed upstream) > > > > > > 0001-Fix-can-not-print-full-login.patch > > > 0001-Overhaul-valid_field.patch > > > CVE-2023-29383.patch > > > (backports) > > > > > > libbsd is a new native dependency, as otherwise glibc >= 2.38 is > > > needed. > > > > > > A similar fix is added to musl in order to define non-standard > > > __BEGIN_DECLS/__END_DECLS. > > > > > > Signed-off-by: Alexander Kanavin <a...@linutronix.de> > > > --- > > > ...01-Disable-use-of-syslog-for-sysroot.patch | 52 ------- > > > .../0001-Fix-can-not-print-full-login.patch | 41 ----- > > > .../files/0001-Overhaul-valid_field.patch | 65 -------- > > > .../shadow/files/CVE-2023-29383.patch | 53 ------- > > > .../shadow/files/CVE-2023-4641.patch | 147 ------------------ > > > ...nexpected-open-failure-in-chroot-env.patch | 16 +- > > > meta/recipes-extended/shadow/shadow.inc | 20 +-- > > > .../{shadow_4.13.bb => shadow_4.14.2.bb} | 0 > > > 8 files changed, 16 insertions(+), 378 deletions(-) > > > delete mode 100644 > > > meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch > > > delete mode 100644 > > > meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch > > > delete mode 100644 > > > meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch > > > delete mode 100644 > > > meta/recipes-extended/shadow/files/CVE-2023-29383.patch > > > delete mode 100644 > > > meta/recipes-extended/shadow/files/CVE-2023-4641.patch > > > rename meta/recipes-extended/shadow/{shadow_4.13.bb => > > > shadow_4.14.2.bb} (100%) > > > > > > diff --git > > > a/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for- > > > sysroot.patch > > > b/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for- > > > sysroot.patch > > > deleted file mode 100644 > > > index fa1532c8317..00000000000 > > > --- > > > a/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for- > > > sysroot.patch > > > +++ /dev/null > > > @@ -1,52 +0,0 @@ > > > -From 85d0444229ee3d14fefcf10d093f49c862826f82 Mon Sep 17 00:00:00 > > > 2001 > > > -From: Richard Purdie <richard.pur...@linuxfoundation.org> > > > -Date: Thu, 14 Apr 2022 23:11:53 +0000 > > > -Subject: [PATCH] Disable use of syslog for shadow-native tools > > > - > > > -Disable use of syslog to prevent sysroot user and group additions > > > from -writing entries to the host's syslog. This patch should only > > > be used -with the shadow-native recipe. > > > - > > > -Upstream-Status: Inappropriate [OE specific configuration] > > > -Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org> > > > -Signed-off-by: Peter Kjellerstedt <peter.kjellerst...@axis.com> > > > - > > > ---- > > > - configure.ac | 2 +- > > > - src/login_nopam.c | 3 ++- > > > - 2 files changed, 3 insertions(+), 2 deletions(-) > > > - > > > -diff --git a/configure.ac b/configure.ac -index 924254a..603af81 > > > 100644 > > > ---- a/configure.ac > > > -+++ b/configure.ac > > > -@@ -191,7 +191,7 @@ AC_DEFINE_UNQUOTED(PASSWD_PROGRAM, > > > "$shadow_cv_passwd_dir/passwd", > > > - [Path to passwd program.]) > > > - > > > - dnl XXX - quick hack, should disappear before anyone notices :). > > > --AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().]) > > > -+#AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().]) > > > - if test "$ac_cv_func_ruserok" = "yes"; then > > > - AC_DEFINE(RLOGIN, 1, [Define if login should support the -r flag > > > for rlogind.]) > > > - AC_DEFINE(RUSEROK, 0, [Define to the ruserok() "success" return > > > value (0 or 1).]) > > > -diff --git a/src/login_nopam.c b/src/login_nopam.c -index > > > df6ba88..fc24e13 100644 > > > ---- a/src/login_nopam.c > > > -+++ b/src/login_nopam.c > > > -@@ -29,7 +29,6 @@ > > > - #ifndef USE_PAM > > > - #ident "$Id$" > > > - > > > --#include "prototypes.h" > > > - /* > > > - * This module implements a simple but effective form of login > > > access > > > - * control based on login names and on host (or domain) names, > > > internet > > > -@@ -57,6 +56,8 @@ > > > - #include <netinet/in.h> > > > - #include <arpa/inet.h> /* for inet_ntoa() */ > > > - > > > -+#include "prototypes.h" > > > -+ > > > - #if !defined(MAXHOSTNAMELEN) || (MAXHOSTNAMELEN < 64) > > > - #undef MAXHOSTNAMELEN > > > - #define MAXHOSTNAMELEN 256 > > > diff --git > > > a/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-log > > > in.patch > > > b/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-log > > > in.patch > > > deleted file mode 100644 > > > index 89f9c05c8d3..00000000000 > > > --- > > > a/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-log > > > in.patch > > > +++ /dev/null > > > @@ -1,41 +0,0 @@ > > > -commit 670cae834827a8f794e6f7464fa57790d911b63c > > > -Author: SoumyaWind <121475834+soumyaw...@users.noreply.github.com> > > > -Date: Tue Dec 27 17:40:17 2022 +0530 > > > - > > > - shadow: Fix can not print full login timeout message > > > - > > > - Login timed out message prints only first few bytes when write is > > > immediately followed by exit. > > > - Calling exit from new handler provides enough time to display full > > > message. > > > - > > > -Upstream-Status: Backport > > > [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f > > > 7464fa57790d911b63c] > > > - > > > -diff --git a/src/login.c b/src/login.c -index 116e2cb3..c55f4de0 > > > 100644 > > > ---- a/src/login.c > > > -+++ b/src/login.c > > > -@@ -120,6 +120,7 @@ static void get_pam_user (char **ptr_pam_user); > > > - > > > - static void init_env (void); > > > - static void alarm_handler (int); > > > -+static void exit_handler (int); > > > - > > > - /* > > > - * usage - print login command usage and exit -@@ -391,11 +392,16 > > > @@ static void init_env (void) > > > - #endif /* !USE_PAM */ > > > - } > > > - > > > -+static void exit_handler (unused int sig) { > > > -+ _exit (0); > > > -+} > > > - > > > - static void alarm_handler (unused int sig) > > > - { > > > - write (STDERR_FILENO, tmsg, strlen (tmsg)); > > > -- _exit (0); > > > -+ signal(SIGALRM, exit_handler); > > > -+ alarm(2); > > > - } > > > - > > > - #ifdef USE_PAM > > > diff --git > > > a/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch > > > b/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch > > > deleted file mode 100644 > > > index ac08be515bf..00000000000 > > > --- > > > a/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch > > > +++ /dev/null > > > @@ -1,65 +0,0 @@ > > > -From 2eaea70111f65b16d55998386e4ceb4273c19eb4 Mon Sep 17 00:00:00 > > > 2001 > > > -From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= > > > <cgzo...@googlemail.com> > > > -Date: Fri, 31 Mar 2023 14:46:50 +0200 > > > -Subject: [PATCH] Overhaul valid_field() > > > - > > > -e5905c4b ("Added control character check") introduced checking for > > > -control characters but had the logic inverted, so it rejects all > > > -characters that are not control ones. > > > - > > > -Cast the character to `unsigned char` before passing to the > > > character -checking functions to avoid UB. > > > - > > > -Use strpbrk(3) for the illegal character test and return early. > > > - > > > -Upstream-Status: Backport > > > [https://github.com/shadow-maint/shadow/commit/2eaea70111f65b16d5599 > > > 8386e4ceb4273c19eb4] > > > - > > > -Signed-off-by: Xiangyu Chen <xiangyu.c...@windriver.com> > > > ---- > > > - lib/fields.c | 24 ++++++++++-------------- > > > - 1 file changed, 10 insertions(+), 14 deletions(-) > > > - > > > -diff --git a/lib/fields.c b/lib/fields.c -index fb51b582..53929248 > > > 100644 > > > ---- a/lib/fields.c > > > -+++ b/lib/fields.c > > > -@@ -37,26 +37,22 @@ int valid_field (const char *field, const char > > > *illegal) > > > - > > > - /* For each character of field, search if it appears in the list > > > - * of illegal characters. */ > > > -+ if (illegal && NULL != strpbrk (field, illegal)) { > > > -+ return -1; > > > -+ } > > > -+ > > > -+ /* Search if there are non-printable or control characters */ > > > - for (cp = field; '\0' != *cp; cp++) { > > > -- if (strchr (illegal, *cp) != NULL) { > > > -+ unsigned char c = *cp; > > > -+ if (!isprint (c)) { > > > -+ err = 1; > > > -+ } > > > -+ if (iscntrl (c)) { > > > - err = -1; > > > - break; > > > - } > > > - } > > > - > > > -- if (0 == err) { > > > -- /* Search if there are non-printable or control characters > > > */ > > > -- for (cp = field; '\0' != *cp; cp++) { > > > -- if (!isprint (*cp)) { > > > -- err = 1; > > > -- } > > > -- if (!iscntrl (*cp)) { > > > -- err = -1; > > > -- break; > > > -- } > > > -- } > > > -- } > > > -- > > > - return err; > > > - } > > > - > > > --- > > > -2.34.1 > > > - > > > diff --git a/meta/recipes-extended/shadow/files/CVE-2023-29383.patch > > > b/meta/recipes-extended/shadow/files/CVE-2023-29383.patch > > > deleted file mode 100644 > > > index f53341d3fc2..00000000000 > > > --- a/meta/recipes-extended/shadow/files/CVE-2023-29383.patch > > > +++ /dev/null > > > @@ -1,53 +0,0 @@ > > > -From e5905c4b84d4fb90aefcd96ee618411ebfac663d Mon Sep 17 00:00:00 > > > 2001 > > > -From: tomspiderlabs > > > <128755403+tomspiderl...@users.noreply.github.com> > > > -Date: Thu, 23 Mar 2023 23:39:38 +0000 > > > -Subject: [PATCH] Added control character check > > > - > > > -Added control character check, returning -1 (to "err") if control > > > characters are present. > > > - > > > -CVE: CVE-2023-29383 > > > -Upstream-Status: Backport > > > - > > > -Reference to upstream: > > > -https://github.com/shadow-maint/shadow/commit/e5905c4b84d4fb90aefcd > > > 96ee618411ebfac663d > > > - > > > -Signed-off-by: Xiangyu Chen <xiangyu.c...@windriver.com> > > > ---- > > > - lib/fields.c | 11 +++++++---- > > > - 1 file changed, 7 insertions(+), 4 deletions(-) > > > - > > > -diff --git a/lib/fields.c b/lib/fields.c -index 640be931..fb51b582 > > > 100644 > > > ---- a/lib/fields.c > > > -+++ b/lib/fields.c > > > -@@ -21,9 +21,9 @@ > > > - * > > > - * The supplied field is scanned for non-printable and other > > > illegal > > > - * characters. > > > -- * + -1 is returned if an illegal character is present. > > > -- * + 1 is returned if no illegal characters are present, but the field > > > -- * contains a non-printable character. > > > -+ * + -1 is returned if an illegal or control character is present. > > > -+ * + 1 is returned if no illegal or control characters are present, > > > -+ * but the field contains a non-printable character. > > > - * + 0 is returned otherwise. > > > - */ > > > - int valid_field (const char *field, const char *illegal) -@@ > > > -45,10 +45,13 @@ int valid_field (const char *field, const char *illegal) > > > - } > > > - > > > - if (0 == err) { > > > -- /* Search if there are some non-printable characters */ > > > -+ /* Search if there are non-printable or control > > > -+ characters */ > > > - for (cp = field; '\0' != *cp; cp++) { > > > - if (!isprint (*cp)) { > > > - err = 1; > > > -+ } > > > -+ if (!iscntrl (*cp)) { > > > -+ err = -1; > > > - break; > > > - } > > > - } > > > --- > > > -2.34.1 > > > - > > > diff --git a/meta/recipes-extended/shadow/files/CVE-2023-4641.patch > > > b/meta/recipes-extended/shadow/files/CVE-2023-4641.patch > > > deleted file mode 100644 > > > index 1fabfe928e4..00000000000 > > > --- a/meta/recipes-extended/shadow/files/CVE-2023-4641.patch > > > +++ /dev/null > > > @@ -1,147 +0,0 @@ > > > -From 25dbe2ce166a13322b7536ff2f738786ea2e61e7 Mon Sep 17 00:00:00 > > > 2001 > > > -From: Alejandro Colomar <a...@kernel.org> > > > -Date: Sat, 10 Jun 2023 16:20:05 +0200 > > > -Subject: [PATCH] gpasswd(1): Fix password leak > > > - > > > -How to trigger this password leak? > > > -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > - > > > -When gpasswd(1) asks for the new password, it asks twice (as is > > > usual -for confirming the new password). Each of those 2 password > > > prompts -uses agetpass() to get the password. If the second > > > agetpass() fails, -the first password, which has been copied into > > > the 'static' buffer -'pass' via STRFCPY(), wasn't being zeroed. > > > - > > > -agetpass() is defined in <./libmisc/agetpass.c> (around line 91), > > > and -can fail for any of the following reasons: > > > - > > > -- malloc(3) or readpassphrase(3) failure. > > > - > > > - These are going to be difficult to trigger. Maybe getting the system > > > - to the limits of memory utilization at that exact point, so that the > > > - next malloc(3) gets ENOMEM, and possibly even the OOM is triggered. > > > - About readpassphrase(3), ENFILE and EINTR seem the only plausible > > > - ones, and EINTR probably requires privilege or being the same user; > > > - but I wouldn't discard ENFILE so easily, if a process starts opening > > > - files. > > > - > > > -- The password is longer than PASS_MAX. > > > - > > > - The is plausible with physical access. However, at that point, a > > > - keylogger will be a much simpler attack. > > > - > > > -And, the attacker must be able to know when the second password is > > > being -introduced, which is not going to be easy. > > > - > > > -How to read the password after the leak? > > > -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > - > > > -Provoking the leak yourself at the right point by entering a very > > > long -password is easy, and inspecting the process stack at that > > > point should -be doable. Try to find some consistent patterns. > > > - > > > -Then, search for those patterns in free memory, right after the > > > victim -leaks their password. > > > - > > > -Once you get the leak, a program should read all the free memory > > > -searching for patterns that gpasswd(1) leaves nearby the leaked > > > -password. > > > - > > > -On 6/10/23 03:14, Seth Arnold wrote: > > > -> An attacker process wouldn't be able to use malloc(3) for this task. > > > -> There's a handful of tools available for userspace to allocate memory: > > > -> > > > -> - brk / sbrk > > > -> - mmap MAP_ANONYMOUS > > > -> - mmap /dev/zero > > > -> - mmap some other file > > > -> - shm_open > > > -> - shmget > > > -> > > > -> Most of these return only pages of zeros to a process. Using > > > -> mmap of an existing file, you can get some of the contents of the > > > -> file demand-loaded into the memory space on the first use. > > > -> > > > -> The MAP_UNINITIALIZED flag only works if the kernel was compiled > > > -> with CONFIG_MMAP_ALLOW_UNINITIALIZED. This is rare. > > > -> > > > -> malloc(3) doesn't zero memory, to our collective frustration, but > > > -> all the garbage in the allocations is from previous allocations > > > -> in the current process. It isn't leftover from other processes. > > > -> > > > -> The avenues available for reading the memory: > > > -> - /dev/mem and /dev/kmem (requires root, not available with > > > -> Secure Boot) > > > -> - /proc/pid/mem (requires ptrace privileges, mediated by YAMA) > > > -> - ptrace (requires ptrace privileges, mediated by YAMA) > > > -> - causing memory to be swapped to disk, and then inspecting the > > > -> swap > > > -> > > > -> These all require a certain amount of privileges. > > > - > > > -How to fix it? > > > -~~~~~~~~~~~~~~ > > > - > > > -memzero(), which internally calls explicit_bzero(3), or whatever > > > -alternative the system provides with a slightly different name, > > > will -make sure that the buffer is zeroed in memory, and > > > optimizations are not -allowed to impede this zeroing. > > > - > > > -This is not really 100% effective, since compilers may place copies > > > of -the string somewhere hidden in the stack. Those copies won't > > > get zeroed -by explicit_bzero(3). However, that's arguably a > > > compiler bug, since -compilers should make everything possible to > > > avoid optimizing strings -that are later passed to > > > explicit_bzero(3). But we all know that -sometimes it's impossible > > > to have perfect knowledge in the compiler, so -this is plausible. > > > Nevertheless, there's nothing we can do against such -issues, except > > > minimizing the time such passwords are stored in plain -text. > > > - > > > -Security concerns > > > -~~~~~~~~~~~~~~~~~ > > > - > > > -We believe this isn't easy to exploit. Nevertheless, and since the > > > fix -is trivial, this fix should probably be applied soon, and > > > backported to -all supported distributions, to prevent someone else > > > having more -imagination than us to find a way. > > > - > > > -Affected versions > > > -~~~~~~~~~~~~~~~~~ > > > - > > > -All. Bug introduced in shadow 19990709. That's the second commit > > > in -the git history. > > > - > > > -Fixes: 45c6603cc86c ("[svn-upgrade] Integrating new upstream > > > version, shadow (19990709)") > > > - > > > -CVE: CVE-2023-4641 > > > -Upstream-Status: Backport > > > [https://github.com/shadow-maint/shadow/commit/65c88a43a23c2391dcc90 > > > c0abda3e839e9c57904] > > > - > > > -Reported-by: Alejandro Colomar <a...@kernel.org> > > > -Cc: Serge Hallyn <se...@hallyn.com> > > > -Cc: Iker Pedrosa <ipedr...@redhat.com> > > > -Cc: Seth Arnold <seth.arn...@canonical.com> > > > -Cc: Christian Brauner <christ...@brauner.io> > > > -Cc: Balint Reczey <rbal...@debian.org> > > > -Cc: Sam James <s...@gentoo.org> > > > -Cc: David Runge <dv...@archlinux.org> > > > -Cc: Andreas Jaeger <a...@suse.de> > > > -Cc: <~hallyn/sha...@lists.sr.ht> > > > -Signed-off-by: Alejandro Colomar <a...@kernel.org> > > > -Signed-off-by: Xiangyu Chen <xiangyu.c...@windriver.com> > > > ---- > > > - src/gpasswd.c | 1 + > > > - 1 file changed, 1 insertion(+) > > > - > > > -diff --git a/src/gpasswd.c b/src/gpasswd.c -index > > > 5983f787..2d8869ef 100644 > > > ---- a/src/gpasswd.c > > > -+++ b/src/gpasswd.c > > > -@@ -896,6 +896,7 @@ static void change_passwd (struct group *gr) > > > - strzero (cp); > > > - cp = getpass (_("Re-enter new password: ")); > > > - if (NULL == cp) { > > > -+ memzero (pass, sizeof pass); > > > - exit (1); > > > - } > > > - > > > --- > > > -2.34.1 > > > - > > > diff --git > > > a/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open- > > > failure-in-chroot-env.patch > > > b/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open- > > > failure-in-chroot-env.patch index 85d91751056..4a932d2dbb1 100644 > > > --- > > > a/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open- > > > failure-in-chroot-env.patch > > > +++ b/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-o > > > +++ pen-failure-in-chroot-env.patch > > > @@ -1,4 +1,4 @@ > > > -From 21583da072aa66901d859ac00ce209bac87ddecc Mon Sep 17 00:00:00 > > > 2001 > > > +From a773c6b240d27e23d6be41decef0edf24fcee523 Mon Sep 17 00:00:00 > > > +2001 > > > From: Chen Qi <qi.c...@windriver.com> > > > Date: Thu, 17 Jul 2014 15:53:34 +0800 > > > Subject: [PATCH] > > > commonio.c-fix-unexpected-open-failure-in-chroot-env > > > @@ -15,35 +15,37 @@ Note that this patch doesn't change the logic in the > > > code, it just expands > > > the codes. > > > > > > Signed-off-by: Chen Qi <qi.c...@windriver.com> > > > - > > > --- > > > lib/commonio.c | 16 ++++++++++++---- > > > 1 file changed, 12 insertions(+), 4 deletions(-) > > > > > > diff --git a/lib/commonio.c b/lib/commonio.c -index > > > 9a02ce1..61384ec 100644 > > > +index 73fdb3a..d1231e9 100644 > > > --- a/lib/commonio.c > > > +++ b/lib/commonio.c > > > -@@ -616,10 +616,18 @@ int commonio_open (struct commonio_db *db, > > > int mode) > > > +@@ -606,10 +606,18 @@ int commonio_open (struct commonio_db *db, > > > +int mode) > > > db->cursor = NULL; > > > db->changed = false; > > > > > > - fd = open (db->filename, > > > - (db->readonly ? O_RDONLY : O_RDWR) > > > -- | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); > > > +- | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW | O_CLOEXEC); > > > - saved_errno = errno; > > > + if (db->readonly) { > > > + fd = open (db->filename, > > > + (true ? O_RDONLY : O_RDWR) > > > -+ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); > > > ++ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW | > > > ++ O_CLOEXEC); > > > + saved_errno = errno; > > > + } else { > > > + fd = open (db->filename, > > > + (false ? O_RDONLY : O_RDWR) > > > -+ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); > > > ++ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW| > > > ++ O_CLOEXEC); > > > + saved_errno = errno; > > > + } > > > + > > > db->fp = NULL; > > > if (fd >= 0) { > > > #ifdef WITH_TCB > > > +-- > > > +2.30.2 > > > + > > > diff --git a/meta/recipes-extended/shadow/shadow.inc > > > b/meta/recipes-extended/shadow/shadow.inc > > > index ce3ce627156..c024746d4ff 100644 > > > --- a/meta/recipes-extended/shadow/shadow.inc > > > +++ b/meta/recipes-extended/shadow/shadow.inc > > > @@ -5,7 +5,7 @@ BUGTRACKER = > > > "http://github.com/shadow-maint/shadow/issues" > > > SECTION = "base/utils" > > > LICENSE = "BSD-3-Clause" > > > LIC_FILES_CHKSUM = "file://COPYING;md5=c9a450b7be84eac23e6353efecb60b5b > > > \ > > > - > > > file://src/passwd.c;beginline=2;endline=30;md5=758c26751513b6795395275969dd3be1 > > > \ > > > + > > > + file://src/passwd.c;beginline=2;endline=7;md5=67bcf314687820b2f010 > > > + d4863fce3fc5 \ > > > " > > > > > > DEPENDS = "virtual/crypt" > > > @@ -14,10 +14,6 @@ GITHUB_BASE_URI = > > > "https://github.com/shadow-maint/shadow/releases" > > > SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \ > > > ${@bb.utils.contains('PACKAGECONFIG', 'pam', > > > '${PAM_SRC_URI}', '', d)} \ > > > file://useradd \ > > > - file://0001-Fix-can-not-print-full-login.patch \ > > > - file://CVE-2023-29383.patch \ > > > - file://0001-Overhaul-valid_field.patch \ > > > - file://CVE-2023-4641.patch \ > > > " > > > > > > SRC_URI:append:class-target = " \ > > > @@ -26,14 +22,9 @@ SRC_URI:append:class-target = " \ > > > " > > > > > > SRC_URI:append:class-native = " \ > > > - file://0001-Disable-use-of-syslog-for-sysroot.patch \ > > > > > > file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \ > > > " > > > -SRC_URI:append:class-nativesdk = " \ > > > - file://0001-Disable-use-of-syslog-for-sysroot.patch \ > > > - " > > > -SRC_URI[sha256sum] = > > > "813057047499c7fe81108adcf0cffa3ad4ec75e19a80151f9cbaa458ff2e86cd" > > > - > > > +SRC_URI[sha256sum] = > > > "a305edf5d19bddbdf5e836d2d609fa8bff2d35458819de4d9f06306a1cf24342" > > > > > > # Additional Policy files for PAM > > > PAM_SRC_URI = "file://pam.d/chfn \ @@ -44,7 +35,7 @@ PAM_SRC_URI = > > > "file://pam.d/chfn \ > > > file://pam.d/passwd \ > > > file://pam.d/su" > > > > > > -inherit autotools gettext github-releases > > > +inherit autotools gettext github-releases pkgconfig > > > > > > export CONFIG_SHELL="/bin/sh" > > > > > > @@ -54,6 +45,8 @@ EXTRA_OECONF += "--without-libcrack \ > > > --without-sssd \ > > > ${NSCDOPT}" > > > > > > +CFLAGS:append:libc-musl = " -DLIBBSD_OVERLAY" > > > + > > > NSCDOPT = "" > > > NSCDOPT:class-native = "--without-nscd" > > > NSCDOPT:class-nativesdk = "--without-nscd" > > > @@ -73,13 +66,14 @@ PAM_PLUGINS = "libpam-runtime \ > > > > > > PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ > > > ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', > > > 'attr', '', d)}" > > > -PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', > > > 'xattr', 'attr', '', d)}" > > > +PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', > > > 'xattr', 'attr', '', d)} libbsd" > > > PACKAGECONFIG:class-nativesdk = "" > > > PACKAGECONFIG[pam] = > > > "--with-libpam,--without-libpam,libpam,${PAM_PLUGINS}" > > > PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" > > > PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" > > > PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit" > > > PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux > > > libsemanage" > > > +PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" > > > > > > RDEPENDS:${PN} = "shadow-securetty \ > > > base-passwd \ > > > diff --git a/meta/recipes-extended/shadow/shadow_4.13.bb > > > b/meta/recipes-extended/shadow/shadow_4.14.2.bb > > > similarity index 100% > > > rename from meta/recipes-extended/shadow/shadow_4.13.bb > > > rename to meta/recipes-extended/shadow/shadow_4.14.2.bb > > > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#194040): https://lists.openembedded.org/g/openembedded-core/message/194040 Mute This Topic: https://lists.openembedded.org/mt/103661547/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-