spiegel_podman/libpod
Paul Holzinger 3101c79ca2
libpod: bind ports before network setup
We bind ports to ensure there are no conflicts and we leak them into
conmon to keep them open. However we bound the ports after the network
was set up so it was possible for a second network setup to overwrite
the firewall configs of a previous container as it failed only later
when binding the port. As such we must ensure we bind before the network
is set up.

This is not so simple because we still have to take care of
PostConfigureNetNS bool in which case the network set up happens after
we launch conmon. Thus we end up with two different conditions.

Also it is possible that we "leak" the ports that are set on the
container until the garbage collector will close them. This is not
perfect but the alternative is adding special error handling on each
function exit after prepare until we start conmon which is a lot of work
to do correctly.

Fixes https://issues.redhat.com/browse/RHEL-50746

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
(cherry picked from commit 77081df8cd)
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
Signed-off-by: Chris Evich <cevich@redhat.com>
2026-03-30 15:13:37 -04:00
..
define Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events Fix podman system events command and event template handling 2026-03-30 15:13:33 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
logs libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
plugin Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
shutdown libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
boltdb_state_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go libpod: bind ports before network setup 2026-03-30 15:13:37 -04:00
container_api.go container wait: improve error message 2022-07-26 14:40:52 -04:00
container_commit.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_config.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
container_copy_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_exec.go [v4.2.0-rhel] all: stop using deprecated GenerateNonCryptoID 2023-02-01 16:35:50 -05:00
container_graph.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go health check: add on-failure actions 2022-09-27 10:40:36 +02:00
container_inspect_linux.go Adjust for common bump 2026-01-28 10:48:05 -05:00
container_internal.go Ignore SELinux relabel on unsupported file systems 2026-03-30 15:13:33 -04:00
container_internal_common.go Add missing unix import for ENOTSUP 2026-03-30 15:13:33 -04:00
container_internal_linux.go libpod: bind ports before network setup 2026-03-30 15:13:37 -04:00
container_internal_linux_test.go test: use T.TempDir to create temporary test directory 2022-05-05 21:09:41 +08:00
container_internal_test.go test: fix failing TestPostDeleteHooks 2022-05-05 21:39:46 +08:00
container_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_log.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_linux.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_unsupported.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_path_resolution.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
container_stat_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_top_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_validate.go health check: add on-failure actions 2022-09-27 10:40:36 +02:00
diff.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go Fix podman system events command and event template handling 2026-03-30 15:13:33 -04:00
healthcheck.go health checks: make on-failure action retry aware 2022-10-07 13:47:06 -04:00
healthcheck_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
info.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
info_linux.go Adjust for common bump 2026-01-28 10:48:05 -05:00
info_test.go Robust whitespace split of cpu utilization line from /proc/stat 2022-05-14 00:34:56 +00:00
kube.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_common.go libpod: bind ports before network setup 2026-03-30 15:13:37 -04:00
networking_linux.go Ignore SELinux relabel on unsupported file systems 2026-03-30 15:13:33 -04:00
networking_linux_test.go enable unparam linter 2022-04-25 13:23:20 +02:00
networking_machine.go enable gocritic linter 2022-04-26 18:12:22 +02:00
networking_slirp4netns.go Adjust for common bump 2026-01-28 10:48:05 -05:00
oci.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_attach_common.go Adjust for common bump 2026-01-28 10:48:05 -05:00
oci_conmon_attach_linux.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
oci_conmon_common.go libpod: bind ports before network setup 2026-03-30 15:13:37 -04:00
oci_conmon_exec_common.go Fix capability copying 2026-03-30 15:13:31 -04:00
oci_conmon_exec_linux.go Fix capability copying 2026-03-30 15:13:31 -04:00
oci_conmon_linux.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
oci_missing.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_util.go libpod: bind ports before network setup 2026-03-30 15:13:37 -04:00
options.go Adjust for common bump 2026-01-28 10:48:05 -05:00
pod.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_api.go Merge pull request #14501 from cdoern/podUTS 2022-07-06 14:51:22 +00:00
pod_internal.go [v4.2.0-rhel] all: stop using deprecated GenerateNonCryptoID 2023-02-01 16:35:50 -05:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go libpod/pod_top_linux.go: s/TODO/NOTE/ 2022-05-25 12:30:19 +02:00
reset.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
runtime.go Fix runtime initialization for missing StaticDir and VolumePath 2026-03-30 15:13:31 -04:00
runtime_cstorage.go Fix storage container mount check to fail on errors 2026-03-30 15:13:33 -04:00
runtime_ctr.go Fix podman system events command and event template handling 2026-03-30 15:13:33 -04:00
runtime_img.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_migrate.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod_linux.go libpod: do not lock all containers on pod rm 2022-07-26 14:42:19 -04:00
runtime_renumber.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume_linux.go [v4.2.0-rhel] all: stop using deprecated GenerateNonCryptoID 2023-02-01 16:35:50 -05:00
runtime_worker.go work queue: simplify and use a wait group 2022-05-25 10:17:46 +02:00
service.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
state.go Fix compilation errors for v4.4.1-rhel compatibility 2026-03-30 14:52:52 -04:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
storage.go Fix userns=auto failures in rootless mode 2026-03-30 15:13:31 -04:00
util.go Ignore SELinux relabel on unsupported file systems 2026-03-30 15:13:33 -04:00
util_linux.go Ignore SELinux relabel on unsupported file systems 2026-03-30 15:13:33 -04:00
util_linux_test.go replace deprecated selinux/label calls 2026-01-28 10:48:05 -05:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
volume_inspect.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
volume_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00