podman/libpod
Paul Holzinger d513973237
libpod: addHosts() prevent nil deref
In theory RootlessNetnsInfo() should never return nil here. However that
was actually only true when the rootless netns was set up before and
wrote the right cache file with the ip addresses.

Given this cache file is a new feature just added in 5.3 if you updated
from 5.2 or earlier the file will not exists thus cause failures for all
following started containers.
The fix for this is to stop all containers and make sure the
rootless-netns was removed so the next start creates it new with the
proper 5.3 cache file. However as there is no way to rely on users doing
that and it is also not requirement so simply handle the nil deref here.

The only way to test this would be to run the old version then the new
version which we cannot really do in CI. We do have upgrade test for
that but they are root only and likely need a lot more work to get them
going rootless but certainly worth to explore to prevent such problems
in the future.

Fixes: a1e6603133 ("libpod: make use of new pasta option from c/common")
Fixes: #24566

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-11-15 13:39:45 +01:00
..
define AdditionalSupport for SubPath volume mounts 2024-11-06 10:10:26 -05:00
driver Bump Go module to v5 2024-02-08 09:35:39 -05:00
events Merge pull request #24412 from Sativarsainath-26/network-events 2024-11-06 18:33:18 +00:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
lock Additional potential race condition on os.Readdir 2024-08-12 11:38:02 -04:00
logs bump go to 1.22 2024-09-03 15:14:15 +02:00
plugin libpod: use fileutils.(Le|E)xists 2024-04-19 09:52:14 +02:00
shutdown libpod: remove shutdown.Unregister() 2024-09-26 16:20:56 +02:00
boltdb_state.go libpod: use fileutils.(Le|E)xists 2024-04-19 09:52:14 +02:00
boltdb_state_internal.go Ignore result of EvalSymlinks on ENOENT 2024-07-11 09:39:56 -04:00
common_test.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container.go Merge pull request #24532 from mheon/subpath 2024-11-12 21:46:58 +00:00
container_api.go add default polling interval to Container.Wait 2024-10-30 20:00:52 +01:00
container_commit.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_config.go Add --health-max-log-count, --health-max-log-size, --health-log-destination flags 2024-09-25 14:01:35 +02:00
container_copy_common.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_copy_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_copy_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_exec.go Use persist dir for oom file 2024-02-12 09:13:39 -05:00
container_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_graph.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_graph_test.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_inspect.go AdditionalSupport for SubPath volume mounts 2024-11-06 10:10:26 -05:00
container_inspect_freebsd.go libpod: fix HostConfig.Devices output from 'podman inspect' on FreeBSD 2024-09-02 11:21:35 +01:00
container_inspect_linux.go Switch to moby/sys/capability 2024-10-01 12:52:18 -07:00
container_internal.go Add --health-max-log-count, --health-max-log-size, --health-log-destination flags 2024-09-25 14:01:35 +02:00
container_internal_common.go libpod: addHosts() prevent nil deref 2024-11-15 13:39:45 +01:00
container_internal_freebsd.go libpod: cleanupNetwork() return error 2024-08-09 10:57:24 +02:00
container_internal_linux.go libpod: addHosts() prevent nil deref 2024-11-15 13:39:45 +01:00
container_internal_linux_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_internal_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_log.go libpod: log file use Wait() over event API 2024-11-01 18:53:08 +01:00
container_log_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_log_unsupported.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_path_resolution.go chore: fix function names in comment 2024-04-08 11:36:50 +08:00
container_path_resolution_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_stat_common.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_stat_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_stat_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_top_freebsd.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
container_top_linux.c libpod/container_top_linux.c: fix missing header 2024-06-27 10:50:17 +02:00
container_top_linux.go update golangci-lint to 1.60.1 2024-08-19 11:41:28 +02:00
container_top_unsupported.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_validate.go Add ExposedPorts to Inspect's ContainerConfig 2024-10-01 07:54:52 -04:00
diff.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go Merge pull request #24412 from Sativarsainath-26/network-events 2024-11-06 18:33:18 +00:00
healthcheck.go healthcheck: do not leak statup service 2024-10-25 13:47:59 +02:00
healthcheck_linux.go healthcheck: do not leak service on failed stop 2024-10-25 15:27:05 +02:00
healthcheck_nosystemd_linux.go libpod: do not leak systemd hc startup unit timer 2024-06-04 18:03:46 +02:00
healthcheck_unsupported.go libpod: do not leak systemd hc startup unit timer 2024-06-04 18:03:46 +02:00
info.go fix typo in error message 2024-09-18 13:24:34 -04:00
info_freebsd.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
info_linux.go rootless: drop function ReadMappingsProc 2024-04-10 11:55:35 +02:00
info_test.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
kube.go Merge pull request #23857 from rhatdan/run 2024-09-17 20:31:28 +00:00
mounts_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
networking_common.go Include exposed ports in inspect output when net=host 2024-09-27 12:54:24 -04:00
networking_freebsd.go use new c/common pasta2 setup logic to fix dns 2024-03-19 12:09:31 +01:00
networking_linux.go libpod: setupNetNS() correctly mount netns 2024-09-20 15:19:22 +02:00
networking_linux_test.go bump go to 1.22 2024-09-03 15:14:15 +02:00
networking_machine.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
networking_pasta_linux.go libpod: use pasta Setup() over Setup2() 2024-10-30 13:35:56 +01:00
networking_slirp4netns.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
oci.go libpod: remove UpdateContainerStatus() 2024-08-16 15:34:16 +02:00
oci_conmon.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_attach_common.go fix race conditions in start/attach logic 2024-07-12 15:11:34 +02:00
oci_conmon_attach_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_attach_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_common.go libpod: hasCurrentUserMapped checks for gid too 2024-10-04 16:17:04 +02:00
oci_conmon_exec_common.go Use persist dir for oom file 2024-02-12 09:13:39 -05:00
oci_conmon_exec_freebsd.go Cease using deprecated runc userlookup 2024-02-02 11:02:43 -05:00
oci_conmon_exec_linux.go Cease using deprecated runc userlookup 2024-02-02 11:02:43 -05:00
oci_conmon_freebsd.go libpod: intermediate mount if UID not mapped into the userns 2024-06-21 18:01:26 +02:00
oci_conmon_linux.go libpod: intermediate mount if UID not mapped into the userns 2024-06-21 18:01:26 +02:00
oci_missing.go libpod: remove UpdateContainerStatus() 2024-08-16 15:34:16 +02:00
oci_util.go libpod: bind ports before network setup 2024-07-30 14:39:08 +02:00
options.go Include exposed ports in inspect output when net=host 2024-09-27 12:54:24 -04:00
pod.go podman pod stats: fix race when ctr process exits 2024-07-22 10:30:42 +02:00
pod_api.go cleanup: add new --stopped-only option 2024-08-27 15:01:23 +02:00
pod_internal.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
pod_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
pod_internal_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
pod_status.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
pod_top_freebsd.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
pod_top_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
reset.go libpod: cleanup default cache on system reset 2024-05-29 11:10:55 +02:00
rlimit_int64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
rlimit_uint64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime.go libpod API: make wait endpoint better against rm races 2024-10-08 18:03:15 +02:00
runtime_cstorage.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
runtime_ctr.go podman mount: some better error wrapping 2024-09-27 15:15:23 +02:00
runtime_ctr_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_ctr_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_freebsd.go Detect unhandled reboots and require user intervention 2024-04-05 10:07:42 -04:00
runtime_img.go chore: fix function names in comment 2024-04-24 12:07:38 +08:00
runtime_linux.go Detect unhandled reboots and require user intervention 2024-04-05 10:07:42 -04:00
runtime_migrate_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
runtime_migrate_unsupported.go Remove Libpod special-init conditions 2024-01-12 09:19:34 -05:00
runtime_pod.go Replace golang.org/x/exp/slices with slices from std 2024-04-23 11:16:40 +02:00
runtime_pod_common.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
runtime_pod_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_pod_linux.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
runtime_pre_go1.20.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_renumber.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
runtime_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_volume.go libpod: remove duplicated HasVolume() check 2024-08-15 11:07:27 +02:00
runtime_volume_common.go Set quota on volume root directory, not _data 2024-10-22 08:49:56 -04:00
runtime_worker.go create runtime's worker queue before queuing any job 2024-07-09 11:15:29 +02:00
service.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
sqlite_state.go Fix an improperly ignored error in SQLite 2024-08-27 13:38:40 -04:00
sqlite_state_internal.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
state.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
state_test.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
stats_common.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
stats_freebsd.go Fix some comments 2024-04-13 15:20:19 +08:00
stats_linux.go libpod: report cgroups deleted during Stat() call 2024-10-29 11:16:57 +01:00
storage.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
util.go Include exposed ports in inspect output when net=host 2024-09-27 12:54:24 -04:00
util_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
util_linux.go libpod: fix rootless cgroup path with --cgroup-parent 2024-09-04 05:30:35 +00:00
util_linux_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume.go Only stop chowning volumes once they're not empty 2024-05-22 17:47:01 -04:00
volume_inspect.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
volume_internal.go Only stop chowning volumes once they're not empty 2024-05-22 17:47:01 -04:00
volume_internal_common.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
volume_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume_internal_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00