[1/1] shadow: fix the behavior of su

Submitted by Qi.Chen@windriver.com on July 22, 2014, 2:32 a.m.

Details

Message ID 3777fcb67381393b494ac5fcb042ba8bc9fa8acb.1405996037.git.Qi.Chen@windriver.com
State Accepted
Commit ab0115d1b8a0cb0b25bdb14fd2a3e6c6bb9a44f8
Headers show

Commit Message

Qi.Chen@windriver.com July 22, 2014, 2:32 a.m.
In systems where bash is not installed and /bin/sh is provided by
busybox. Commands like `su -l -c '/home/root/test' xuser' would fail
complaining the the 'su' applet could not be found.

This patch references the old version of shadow to keep the behaviour
the way it was in old version so that we would avoid the problem mentioned
above.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 .../0001-su.c-fix-to-exec-command-correctly.patch  |   25 ++++++++++++++++++++
 meta/recipes-extended/shadow/shadow.inc            |    1 +
 2 files changed, 26 insertions(+)
 create mode 100644 meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch

Patch hide | download patch | download mbox

diff --git a/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch b/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch
new file mode 100644
index 0000000..31337de
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch
@@ -0,0 +1,25 @@ 
+Upstream-Status: Pending
+
+Subject: su.c: fix to exec command correctly
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/su.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/su.c b/src/su.c
+index 3704217..bc4f2ac 100644
+--- a/src/su.c
++++ b/src/su.c
+@@ -1156,7 +1156,7 @@ int main (int argc, char **argv)
+ 		 * Use the shell and create an argv
+ 		 * with the rest of the command line included.
+ 		 */
+-		argv[-1] = cp;
++		argv[-1] = shellstr;
+ 		execve_shell (shellstr, &argv[-1], environ);
+ 		err = errno;
+ 		(void) fprintf (stderr,
+-- 
+1.7.9.5
+
diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
index 66541f4..84d1f86 100644
--- a/meta/recipes-extended/shadow/shadow.inc
+++ b/meta/recipes-extended/shadow/shadow.inc
@@ -14,6 +14,7 @@  SRC_URI = "http://pkg-shadow.alioth.debian.org/releases/${BPN}-${PV}.tar.xz \
            file://shadow-4.1.3-dots-in-usernames.patch \
            file://usermod-fix-compilation-failure-with-subids-disabled.patch \
            file://fix-installation-failure-with-subids-disabled.patch \
+           file://0001-su.c-fix-to-exec-command-correctly.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            "
 

Comments

Gary Thomas July 22, 2014, 12:05 p.m.
On 2014-07-21 20:32, Chen Qi wrote:
> In systems where bash is not installed and /bin/sh is provided by
> busybox. Commands like `su -l -c '/home/root/test' xuser' would fail
> complaining the the 'su' applet could not be found.
>
> This patch references the old version of shadow to keep the behaviour
> the way it was in old version so that we would avoid the problem mentioned
> above.
>
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>

Acked-by: Gary Thomas <gary@mlbassoc.com>

> ---
>   .../0001-su.c-fix-to-exec-command-correctly.patch  |   25 ++++++++++++++++++++
>   meta/recipes-extended/shadow/shadow.inc            |    1 +
>   2 files changed, 26 insertions(+)
>   create mode 100644 meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch
>
> diff --git a/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch b/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch
> new file mode 100644
> index 0000000..31337de
> --- /dev/null
> +++ b/meta/recipes-extended/shadow/files/0001-su.c-fix-to-exec-command-correctly.patch
> @@ -0,0 +1,25 @@
> +Upstream-Status: Pending
> +
> +Subject: su.c: fix to exec command correctly
> +
> +Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> +---
> + src/su.c |    2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/src/su.c b/src/su.c
> +index 3704217..bc4f2ac 100644
> +--- a/src/su.c
> ++++ b/src/su.c
> +@@ -1156,7 +1156,7 @@ int main (int argc, char **argv)
> + 		 * Use the shell and create an argv
> + 		 * with the rest of the command line included.
> + 		 */
> +-		argv[-1] = cp;
> ++		argv[-1] = shellstr;
> + 		execve_shell (shellstr, &argv[-1], environ);
> + 		err = errno;
> + 		(void) fprintf (stderr,
> +--
> +1.7.9.5
> +
> diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
> index 66541f4..84d1f86 100644
> --- a/meta/recipes-extended/shadow/shadow.inc
> +++ b/meta/recipes-extended/shadow/shadow.inc
> @@ -14,6 +14,7 @@ SRC_URI = "http://pkg-shadow.alioth.debian.org/releases/${BPN}-${PV}.tar.xz \
>              file://shadow-4.1.3-dots-in-usernames.patch \
>              file://usermod-fix-compilation-failure-with-subids-disabled.patch \
>              file://fix-installation-failure-with-subids-disabled.patch \
> +           file://0001-su.c-fix-to-exec-command-correctly.patch \
>              ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
>              "
>
>