len = st.st_size; banner = xmalloc(len + 1); if ((n = read(fd, banner, len)) < 0) goto done; banner[n] = '\0';
userauth_banner(void){	struct stat st;	char *banner = NULL;	off_t len, n;	int fd;	if (options.banner == NULL || (datafellows & SSH_BUG_BANNER))		return;	if ((fd = open(options.banner, O_RDONLY)) < 0)		return;	if (fstat(fd, &st) < 0)		goto done;	len = st.st_size;	banner = xmalloc(len + 1);	if ((n = read(fd, banner, len)) < 0)		goto done;	banner[n] = '\0';	packet_start(SSH2_MSG_USERAUTH_BANNER);	packet_put_cstring(banner);	packet_put_cstring("");		/* language, unused */	packet_send();	debug("userauth_banner: sent");done:	if (banner)		xfree(banner);	close(fd);	return;}