This patch fixes a bug where cfagent can leave a load of zombie processes.
This patch is not necessary as of cfengine 2.2.8.
This bug arises from a problem with the OpenSSL library failing to initialise correctly. As a result file descriptors are not closed and will eventually leak. Cfagent detects leaking file descriptors and tries to tidy up but forgets to wait() for its children.
This patch adds the missing wait() code as well as ensuing that file descriptors are not leaked in the first place. Cfengine 2.2.8 fixes the bug preventing OpenSSL from working and so this patch is not strictly necessary.