This reverts commit dea4897244b409bf91dc60a7e5e4b3d06f123dd6.
It appears to induce spurious behaviour, seen in the testsuite. Possibly
the sha_hash update calls think the memory they are passed will still
be around later (eg. at sha_finish time)? A pity, since currently
we are allocating for the entire message body - which could easily
be MB or (future) GB.