test-runcmd: Fix missing-field-initializers

I'm not quite clear on exactly why I can't get my fedora-gcc to complain
about this, but travis' ubuntu-gcc seems to complain.

Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>
runcmd: Don't crash when exposed to ampersands

An off-by-one error caused us to copy both a null-byte and the job
control character when exposed to commands containing job control
characters. If there are more than 10 of those, we'd run out of memory
and write to uninitialized memory. If we were unlucky, the uninitialized
memory was "badly" located, which means worker crash and bug op5#8182.

The fun thing is, the way the "embedded shell" thingie works, every time
you call add_ret(), you might as well just return - alas, we don't, for
reasons that are hard to see clearly but I assume involve having
something to speed up in a future version. Oh well.

So, back to the bug: we discovered a case where knew we would never,
ever read the output, and proceeded to handle that by... Writing too
much to the output to the point where the worker crashed.

Proving, with a test, that we didn't really do anything is hard. The
extra test case added to test-runcmd doesn't fail or generate a crash
with the old code, but at least it generates memory errors when run
through valgrind, and those errors are now gone.

So, this should fix the crash in bug op5#8182, when using the initial,
incorrect quoting - obviously, the check result still won't make sense
as it's wrong, but now you get to see that rather than infinite crashes.

Change-Id: I0b7ebd9a782125bc060ea9eb785d70de7bb69228
Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>