In all of the cases where _exit is used, vmi->os_interface doesn't appear to be allocated yet.  Why free it here?  Or am I missing something?