systemd: Correctly check ENABLE_GSHADOW with if/endif

Use commit 4f07ffa8f5ab ("Use #if instead of #ifdef for ENABLE_GSHADOW")
from upstream to check ENABLE_GSHADOW correctly that is defined as 0
in case of musl.

While there replace specific patch with one from upstream that does
exactly the same commit 66a5b5ce9b99 ("basic/user-util: properly protect
use of gshadow").

(From OE-Core rev: c9580ef0810196f6703567d9db458b73dbbfb35f)

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Serhey Popovych
2019-01-12 11:22:47 +02:00
committed by Richard Purdie
parent ae9160e099
commit 842908cbf1
4 changed files with 68 additions and 30 deletions

View File

@@ -0,0 +1,38 @@
From 66a5b5ce9b991327d594f7b635de16999ca54093 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Wed, 21 Nov 2018 18:09:04 +0100
Subject: basic/user-util: properly protect use of gshadow
Commit 100d5f6ee6 (user-util: add new wrappers for [...] database
files), ammended by commit 4f07ffa8f5 (Use #if instead of #ifdef for
ENABLE_GSHADOW) moved code from sysuser to basic/user-util.
In doing so, the combination of both commits properly propagated the
ENABLE_GSHADOW conditions around the function manipulating gshadow, but
they forgot to protect the inclusion of the gshadow.h header.
Fix that to be able to build on C libraries that do not provide gshadow
(e.g. uClibc-ng, where it does not exist.)
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/66a5b5ce9b991327d594f7b635de16999ca54093]
---
src/basic/user-util.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/basic/user-util.h b/src/basic/user-util.h
index b6de0e423..cc899ee76 100644
--- a/src/basic/user-util.h
+++ b/src/basic/user-util.h
@@ -2,7 +2,9 @@
#pragma once
#include <grp.h>
+#if ENABLE_GSHADOW
#include <gshadow.h>
+#endif
#include <pwd.h>
#include <shadow.h>
#include <stdbool.h>
--
2.18.1

View File

@@ -1,29 +0,0 @@
From a2c4d46944892174930135672508389a04e191f0 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Fri, 29 Jun 2018 13:53:29 +0800
Subject: [PATCH 05/19] include gshadow only if ENABLE_GSHADOW is 1
Upstream-Status: Inappropriate [musl]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/basic/user-util.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/basic/user-util.h b/src/basic/user-util.h
index b74f16885..f9c1e29c4 100644
--- a/src/basic/user-util.h
+++ b/src/basic/user-util.h
@@ -2,7 +2,9 @@
#pragma once
#include <grp.h>
+#if ENABLE_GSHADOW
#include <gshadow.h>
+#endif
#include <pwd.h>
#include <shadow.h>
#include <stdbool.h>
--
2.11.0

View File

@@ -0,0 +1,28 @@
From 4f07ffa8f5ab85011422bb7114f1cddf49d4923d Mon Sep 17 00:00:00 2001
From: ChenQi1989 <40684930+ChenQi1989@users.noreply.github.com>
Date: Fri, 29 Jun 2018 06:54:07 +0000
Subject: Use #if instead of #ifdef for ENABLE_GSHADOW
ENABLE_GSHADOW is defined to be 0 or 1. So #if should be used instead of #ifdef.
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/4f07ffa8f5ab85011422bb7114f1cddf49d4923d]
---
src/basic/user-util.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/basic/user-util.h b/src/basic/user-util.h
index b74f16885..b2f198c89 100644
--- a/src/basic/user-util.h
+++ b/src/basic/user-util.h
@@ -102,7 +102,7 @@ int fgetgrent_sane(FILE *stream, struct group **gr);
int putpwent_sane(const struct passwd *pw, FILE *stream);
int putspent_sane(const struct spwd *sp, FILE *stream);
int putgrent_sane(const struct group *gr, FILE *stream);
-#ifdef ENABLE_GSHADOW
+#if ENABLE_GSHADOW
int fgetsgent_sane(FILE *stream, struct sgrp **sg);
int putsgent_sane(const struct sgrp *sg, FILE *stream);
#endif
--
2.18.1

View File

@@ -51,7 +51,7 @@ SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.pa
file://0002-don-t-use-glibc-specific-qsort_r.patch \
file://0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \
file://0004-add-fallback-parse_printf_format-implementation.patch \
file://0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch \
file://0005-basic-user-util-properly-protect-use-of-gshadow.patch \
file://0006-src-basic-missing.h-check-for-missing-strndupa.patch \
file://0007-Include-netinet-if_ether.h.patch \
file://0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
@@ -68,6 +68,7 @@ SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.pa
file://0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
file://0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
file://0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
file://0022-Use-if-instead-of-ifdef-for-ENABLE_GSHADOW.patch \
"
# Workaround undefined reference to `__stack_chk_fail_local' on qemux86 and qemuppc for musl