Index: builtins/alias.c =================================================================== --- builtins/alias.c (revision 1547) +++ builtins/alias.c (working copy) @@ -148,6 +148,19 @@ /* command is a keyword and needs to be handled separately */ "if [[ \"${cmd}\" == \"command\" ]] ; then\n" "command \"$@\"\n" +#ifdef WORKAROUND_FOR_ALIAS_CRASH +/* + * Work around a crash in /usr/bin/alias when invalid options are. + * passed (e.g. $ /usr/bin/alias -c #). The shell code will call + * an error handler which does a |longjmp()| but somehow the code + * failed to do the |setjmp()| before this point. + * Putting the "alias" command in a subshell avoids the crash. + * Real cause of the issue is under investigation and a fix be + * delivered with the next ast-ksh update. + */ +"elif [[ \"${cmd}\" == \"alias\" ]] ; then\n" + "( \"${cmd}\" \"$@\" )\n" +#endif /* WORKAROUND_FOR_ALIAS_CRASH */ "else\n" "\"${cmd}\" \"$@\"\n" "fi\n" Index: builtins/Makefile =================================================================== --- builtins/Makefile (revision 1547) +++ builtins/Makefile (working copy) @@ -102,6 +102,8 @@ $(DTEXTDOM) $(DTS_ERRNO) \ -I$(ROOT)/usr/include/ast +CPPFLAGS += -DWORKAROUND_FOR_ALIAS_CRASH=1 + CFLAGS += \ $(ASTCFLAGS) CFLAGS64 += \