If the third parameter to process.exec() isn't nil or a table, then the memory allocated for the arguments would be lost. This now checks in a recoverable fasion if the third parameter is correct, and if not, frees the argument memory then throws an error.