Freeing the arguments is unnecessary as execv does not return on success, and on failure you should just call exit(), no need to clean up.