MFC r317912: sh: Fix INTOFF leak after a builtin with different locale

settings.

After executing a builtin with different locale settings such as
  LC_ALL=C true
SIGINT handling was left disabled indefinitely.
This commit is contained in:
Jilles Tjoelker 2017-05-14 20:17:50 +00:00
parent e01ea25be5
commit 2ce2af793a
3 changed files with 7 additions and 1 deletions

View File

@ -117,6 +117,7 @@ ${PACKAGE}FILES+= local7.0
.if ${MK_NLS} != "no"
${PACKAGE}FILES+= locale1.0
.endif
${PACKAGE}FILES+= locale2.0
${PACKAGE}FILES+= printf1.0
${PACKAGE}FILES+= printf2.0
${PACKAGE}FILES+= printf3.0

View File

@ -0,0 +1,5 @@
# $FreeBSD$
$SH -c 'LC_ALL=C true; kill -INT $$; echo continued'
r=$?
[ "$r" -gt 128 ] && [ "$(kill -l "$r")" = INT ]

View File

@ -512,7 +512,7 @@ bltinunsetlocale(void)
if (localevar(cmdenviron->args[i])) {
setlocale(LC_ALL, "");
updatecharset();
return;
break;
}
}
INTON;