I don't think it should return `void *`. `vim_strsave` is simply the `char_u` version of `xstrdup`.