Add missing calls to va_end, also reinitialise after use in vnsprintf to get the needed size.