hush crashing on a Blackfin architecture

Denys Vlasenko vda.linux at googlemail.com
Sun Sep 27 19:29:26 UTC 2020


On Tue, Sep 15, 2020 at 7:58 AM Pavel <bbx at sinus.cz> wrote:
>
> Hi!
>   I'm trying to update BB on a blackfin based system (small PBX board
> derived from IP-01 by Rowetel) and I can't get hush running.
>   There is bb 1.16.1 on the board. When I recompile exactly the same, it
> works. However current stable (1.31.1) always ends up with ILL or SEGV or
> sometimes BUS when trying to invoke hush, either in the interactive mode
> or by a script (having #!/usr/bin/busybox hush on its first line).
>   I did a regressin check and I found that the latest BB version which
> works is 1.18.5. The crash appears since 1.19.0.

Unfortunately I was not able to cross-compile to bfin,
neither I have a qemu-system-bfin to reproduce it locally.
I will depend on your ability to try things.

Let's find the point between 1.18.0 and 19.0 where it stopped working.

There are not that many changes which touch hush.c - among ~500
overall changes, I see only these:

0007-hush-display-useful-help-text.patch
0008-Support-set-o-xtrace-noexec-alternates-for-set-x-n.patch
0009-hush-move-G_x_mode-define-to-the-more-appropriate-pl.patch
0022-add-if-guards-around-include-malloc.h.patch
0040-hush-fix-build-breakage-variable-declared-in-for.patch
0058-hush-fix-FEATURE_CLEAN_UP-code-was-freeing-unallocat.patch
0080-hush-fix-wrong-prompt-problem-on-empty-interactive-c.patch
0097-hush-fix-cmd-newline-problem.patch
0098-hush-improve-prompt-in-nested-s-remove-unused-in_str.patch
0148-hush-use-FEATURE_SH_NOFORK-to-enable-NOFORK-trick.patch
0208-hush-do-not-print-killer-signal-s-name-for-SIGPIPE.patch
0257-ash-hush-provide-help-text.patch
0261-ash-hush-shrink-help-text.patch
0281-ash-hush-recheck-LANG-before-every-line-input.patch
0282-hush-fix-a-case-where-return-in-sourced-file-has-no-.patch
0283-hush-make-parse-errors-in-sourced-file-non-fatal-in-.patch
0284-hush-document-a-bug-about-aborting-on-sourced-file-e.patch
0297-hush-fix-source1.tests.patch
0298-hush-remove-outdated-comments.patch
0299-ash-hush-optional-support-for-HISTFILESIZE.patch
0305-ash-hush-add-ulimit-e-r-RLIMIT_NICE-RLIMIT_RTPRIO.patch
0357-hush-fix-incorrect-PS2-dispaly-and-trap-handling-whi.patch
0358-libbb-nonblock_safe_read-nonblock_immune_read-remove.patch
0359-hush-make-read-builtin-interruptible.patch
0360-hush-code-shrink.patch
0361-hush-add-tests-for-interrupting-read.patch
0364-hush-use-SA_RESTARTed-signal-handlers-across-read.patch
0365-hush-replace-signal-handling-machinery.patch
0366-hush-fix-login-shell-s-signal-handling-add-l-option-.patch
0368-hush-add-forgotten-in-multi-statement-if.patch
0369-hush-remove-one-sigprocmask-from-exit-path.patch
0370-hush-fixes-and-small-shrink-for-HUSH_JOB-y.patch
0375-hush-install-signal-handlers-with-filled-sigmask.patch
0385-hush-fix-misparsing-of-.-do-eval-a-.-.-Closes-3721.patch
0417-hush-fix-a-corner-case-of-empty-do-n-done-structure.patch
0418-hush-better-comment.-No-code-changes.patch
0483-hush-partially-fix-wrong-expansion-on-IFS-bug-4027.patch
0484-hush-fix-remaining-known-two-bugs-with-IFS-expansion.patch

and the most suspicious looking is
"0365-hush-replace-signal-handling-machinery.patch"

Can you run this in git tree

    git reset --hard 10c0131a8a1b3db7fd6b23b72ebd7b33afc7b018

(this brings you to
commit 10c0131a8a1b3db7fd6b23b72ebd7b33afc7b018
Date:   Wed May 11 11:49:21 2011 +0200

    hush: use SA_RESTARTed signal handlers across read.
)

build hush from this tree, and let me know whether it works?

If it works, try the 9d6cbafe728c9100a35e29ba7a3729c5303e73ea tree
and let me know whether *that* works.

If it works, try the b1ab283f0b6acc6610d64ec33a50c7b16e517797 tree
and let me know whether *that* works.

If it works, try the 0806e401d6747c391fa0427e0ccba9951f9a1c3d tree
and let me know whether *that* works. It's at
    commit 0806e401d6747c391fa0427e0ccba9951f9a1c3d
    Date:   Thu May 12 23:06:20 2011 +0200
        hush: install signal handlers with filled sigmask


Also, please post your .config


More information about the busybox mailing list