If the malloc(3) has failed to allocate the memory in the init_xdg_dirs(), the latter returns nonzero value, but the 'file' handle is kept open. This closes the handle before return from the init_xdg_dirs() if the malloc(3) has failed.
-- v4: shell32: Fix possible handle leak