Because when the second fork() fails, the cron process waits for 2 children, one of which doesn't even exist and thus cron is stuck with "a ton" of memory allocated. This would also happen if *input_data is false. So not just because the fork() fails... but it could be because it does not even happen.
This may be one solution to the problem reported here:
https:/ /bugs.launchpad .net/ubuntu/ +source/ cron/+bug/ 1702785
Because when the second fork() fails, the cron process waits for 2 children, one of which doesn't even exist and thus cron is stuck with "a ton" of memory allocated. This would also happen if *input_data is false. So not just because the fork() fails... but it could be because it does not even happen.