bastion 0.58.0
ci / personal-data (push) Successful in 4s
ci / test (push) Successful in 4m5s
ci / fuzz (push) Successful in 4m10s

This commit is contained in:
Privatae
2026-10-29 15:54:51 +00:00
parent 081763a675
commit 01889e2a48
37 changed files with 5629 additions and 90 deletions
+6 -1
View File
@@ -350,7 +350,9 @@ type opResolvedDests struct {
// what the unit is allowed to reach, and the names go in the run's own
// /etc/hosts (the machine's resolver is not reachable from the sandbox). A
// destination that resolves to this machine, its loopback or nothing is
// refused: a local service is never an op's destination.
// refused: a local service is never an op's destination. On a machine no
// fleet has anchored, so is one that resolves to a private network
// (opLocalNetworkDest).
func opResolveDests(ctx context.Context, dests []string) (*opResolvedDests, error) {
own := map[string]bool{}
for _, ip := range opActionOwnAddrs() {
@@ -379,6 +381,9 @@ func opResolveDests(ctx context.Context, dests []string) (*opResolvedDests, erro
if why := opForbiddenDest(ip); why != "" {
return nil, fmt.Errorf("destination %s resolves to %s: %s", d, ip, why)
}
if why := opLocalNetworkDest(ip); why != "" {
return nil, fmt.Errorf("destination %s resolves to %s: %s", d, ip, why)
}
if own[ip.String()] {
return nil, fmt.Errorf("destination %s resolves to %s, which is this machine", d, ip)
}