Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
FD leak
Baptiste Daroussin committed 11 years ago
commit a6d0f776d04df3e7bce46168979b28f6e7efacd8
parent 0212ed0863806db37969924e2329bdec656defa3
1 file changed +6 -1
modified src/ssh.c
@@ -77,17 +77,22 @@ exec_ssh(int argc, char **argv __unused)
	cap_rights_init(&rights, CAP_READ, CAP_FSTATAT, CAP_FCNTL);
	if (cap_rights_limit(fd, &rights) < 0 && errno != ENOSYS ) {
		warn("cap_rights_limit() failed");
+
		close(fd);
		return (EX_SOFTWARE);
	}

	if (cap_enter() < 0 && errno != ENOSYS) {
		warn("cap_enter() failed");
+
		close(fd);
		return (EX_SOFTWARE);
	}

#endif
-
	if (pkg_sshserve(fd) != EPKG_OK)
+
	if (pkg_sshserve(fd) != EPKG_OK) {
+
		close(fd);
		return (EX_SOFTWARE);
+
	}

+
	close(fd);
	return (EX_OK);
}