git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: [PATCH v2] Fix false positives in t3404 due to SHELL=/bin/false

From
VJVallon, Justin <justin.vallon@deshaw.com>
Date
Jan 4, 2011, 14:43 UTC
Message-ID
<982E526FA742C94E9AC26DA766FD07090A3399@NYCMBX3.winmail.deshaw.com>
In-Reply-To
<20101227080343.GA15026@orbis-terrarum.net>
 # "exec" commands are ran with the user shell by default, but this may
 # be non-POSIX. For example, if SHELL=zsh then ">file" doesn't work
 # to create a file. Unseting SHELL avoids such non-portable behavior
Perl's exec and system do not use SHELL (as far as perlfunc states).  It uses /bin/sh -c "$cmd", or a platform-dependent equivalent.
$SHELL is typically only used when a program wants to invoke a user-shell (ie: editor shell-escape, xterm, typescript, screen).
How was SHELL=/bin/false causing problems?  Is git using $SHELL?
-- 
-Justin


-----Original Message-----
From: git-owner@vger.kernel.org [mailto:git-owner@vger.kernel.org] On Behalf Of Robin H. Johnson
Sent: Monday, December 27, 2010 3:04 AM
To: Junio C Hamano; git@vger.kernel.org
Subject: [PATCH v2] Fix false positives in t3404 due to SHELL=/bin/false

If the user's shell in NSS passwd is /bin/false (eg as found during Gentoo's
package building), the git-rebase exec tests will fail, because they call
$SHELL around the command, and in the existing testcase, $SHELL was not being
cleared sufficently.

This lead to false positive failures of t3404 on systems where the package
build user was locked down as noted above.

Signed-off-by: "Robin H. Johnson" <robbat2@gentoo.org>
X-Gentoo-Bug: 349083
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=349083
---
 t/t3404-rebase-interactive.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index d3a3bd2..7d8147b 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -71,8 +71,9 @@ test_expect_success 'setup' '
 # "exec" commands are ran with the user shell by default, but this may
 # be non-POSIX. For example, if SHELL=zsh then ">file" doesn't work
 # to create a file. Unseting SHELL avoids such non-portable behavior
-# in tests.
+# in tests. It must be exported for it to take effect where needed.
 SHELL=
+export SHELL
 
 test_expect_success 'rebase -i with the exec command' '
 	git checkout master &&

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85
Previous: Junio C HamanoNext: Robin H. Johnson
Message 5 of 11 in “Fix false positives in t3404 due to SHELL=/bin/false”
  1. Fix false positives in t3404 due to SHELL=/bin/falseRobin H. Johnson, Dec 27, 2010
  2. Junio C HamanoDec 27, 2010
  3. Fix false positives in t3404 due to SHELL=/bin/falseRobin H. Johnson, Dec 27, 2010
  4. Junio C HamanoDec 28, 2010
  5. Vallon, JustinJan 4, 2011
  6. Robin H. JohnsonJan 4, 2011
  7. Matthieu MoyJan 4, 2011
  8. Jonathan NiederJan 4, 2011
  9. Junio C HamanoJan 4, 2011
  10. Vallon, JustinJan 5, 2011
  11. Junio C HamanoJan 5, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.