criu/criu
dong sunchao 42e7ca4f66 vdso: relax EI_OSABI check to support linux in ELF header
On some ARM/aarch64 systems, the VDSO ELF header sets EI_OSABI to 3 (Linux),
while CRIU expects 0 (System V). This strict check causes restore to fail
with "ELF header magic mismatch"

This patch relaxes the check to accept both values, improving compatibility
with modern toolchains and kernels (e.g. Linux 6.12+)

Fixes: #2751
Signed-off-by: dong sunchao <dongsunchao@gmail.com>
2025-09-23 07:55:52 -07:00
..
arch cpuinfo: show error when image is missing 2025-05-23 08:33:23 +01:00
include pagemap: use unsigned long for page counts 2025-09-23 11:05:14 +01:00
pie vdso: relax EI_OSABI check to support linux in ELF header 2025-09-23 07:55:52 -07:00
unittest criu: use libuuid for criu_run_id generation 2025-01-28 10:38:30 -08:00
action-scripts.c rpc: Support gathering external file list after freezing process tree. 2023-10-22 13:29:25 -07:00
aio.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
apparmor.c apparmor: get_suspend_policy must return NULL in error cases 2024-09-11 16:02:11 -07:00
autofs.c criu: use proper format-specified to accommodate time_t 64-bit change 2024-09-11 16:02:11 -07:00
bfd.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
bitmap.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
bpfmap.c bpf: update deprecated API 2022-04-28 17:53:52 -07:00
cgroup-props.c cgroup-v2: Checkpoint and restore some global properties 2023-04-15 21:17:21 -07:00
cgroup.c criu: fix internal representation of cgroups hierarchical structure 2025-03-01 08:44:40 -08:00
clone-noasan.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
config.c Allow skipping iptables/nftables invocation. 2023-10-22 13:29:25 -07:00
cr-check.c kerndat: add pagemap_scan_guard_pages feature check logic 2025-08-15 11:00:06 +01:00
cr-dedup.c pagemap: print page regions in the format start - end 2025-09-23 11:05:14 +01:00
cr-dump.c criu/mem: dump: note MADV_GUARD pages as VMA_AREA_GUARD VMAs 2025-08-15 11:00:06 +01:00
cr-errno.c build: Move everything criu related into criu directory 2016-02-15 15:32:45 +03:00
cr-restore.c criu/{mem, vdso, cr-restore}: introduce VMA_AREA_GUARD fake VMAs 2025-08-15 11:00:06 +01:00
cr-service.c rpc/log: return first error always 2025-06-09 19:14:58 -07:00
crtools.c crtools: do a few minor cleanups 2025-05-23 08:29:36 +01:00
eventfd.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
eventpoll.c Fix some codespell warnings 2022-04-28 17:53:52 -07:00
external.c configs: fix used after free cases 2021-09-03 10:31:00 -07:00
fault-injection.c seize: enable support for frozen containers 2024-11-11 19:33:31 -08:00
fdstore.c criu: use libuuid for criu_run_id generation 2025-01-28 10:38:30 -08:00
fifo.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
file-ids.c criu/files: Don't cache fd ids for device files 2022-04-28 17:53:52 -07:00
file-lock.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
files-ext.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
files-reg.c files-reg: fix buffer overflow on aarch64 2025-01-21 09:15:40 -08:00
files.c files: fork helpers without CLONE_FILES | CLONE_FS 2025-09-22 08:16:32 -07:00
filesystems.c mount: allow bindmounts for external fuse mounts 2023-04-15 21:17:21 -07:00
fsnotify.c log: remove all uses of %m specifier in pr_* functions 2023-04-15 21:17:21 -07:00
hugetlb.c hugetlb: don't dump anonymous private hugetlb mapping using memfd approach 2023-04-15 21:17:21 -07:00
image-desc.c criu: Support C/R of pidfds 2024-10-26 22:18:22 -07:00
image.c net: remember the name of the lock chain (nftables) 2025-01-28 10:38:30 -08:00
img-streamer.c action-scripts: Add pre-stream hook 2023-10-22 13:29:25 -07:00
ipc_ns.c ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach 2023-04-15 21:17:21 -07:00
irmap.c irmap: duplicate string in irmap_scan_path_add 2024-09-11 16:02:11 -07:00
kcmp-ids.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
kerndat.c kerndat: add pagemap_scan_guard_pages feature check logic 2025-08-15 11:00:06 +01:00
libnetlink.c build: libnfnetlink: Remove nla_get_s32(). 2023-10-22 13:29:25 -07:00
log.c rpc/log: return first error always 2025-06-09 19:14:58 -07:00
lsm.c lsm: use attr/apparmor/current to get apparmor label 2025-09-19 11:10:26 +01:00
Makefile make: remove checks for python 2 binary 2023-10-22 13:29:25 -07:00
Makefile.crtools criu: Support C/R of pidfds 2024-10-26 22:18:22 -07:00
Makefile.packages criu: use libuuid for criu_run_id generation 2025-01-28 10:38:30 -08:00
mem.c pagemap: use unsigned long for page counts 2025-09-23 11:05:14 +01:00
memfd.c memfd: don't reopen file descriptors for memory mappings 2023-10-22 13:29:25 -07:00
mount-v2.c mount-v2: enter the mount namesapce to propagation properties 2025-07-24 23:51:57 -07:00
mount.c mount: Fix trailing / when a file is bind-mounted 2025-06-25 14:15:40 -07:00
namespaces.c namespace: skip cleaning up the uid/gid map in error cases 2025-03-22 10:15:44 -07:00
net.c net/sysctl: make ipv4/ping_group_range work in user namespaces 2025-06-09 23:59:44 -07:00
netfilter.c net: remember the name of the lock chain (nftables) 2025-01-28 10:38:30 -08:00
page-pipe.c pagemap: print page regions in the format start - end 2025-09-23 11:05:14 +01:00
page-xfer.c pagemap: print page regions in the format start - end 2025-09-23 11:05:14 +01:00
pagemap-cache.c criu/pagemap-cache: pagescan: look for PAGE_IS_GUARD pages 2025-08-15 11:00:06 +01:00
pagemap.c pagemap: print page regions in the format start - end 2025-09-23 11:05:14 +01:00
parasite-syscall.c kerndat: check that hardware breakpoints work 2025-05-08 13:09:20 +01:00
path.c Fix some codespell warnings 2022-04-28 17:53:52 -07:00
pidfd-store.c criu: use libuuid for criu_run_id generation 2025-01-28 10:38:30 -08:00
pidfd.c pidfd: add missing include 2024-12-04 08:59:40 -08:00
pie-util-vdso-elf32.c vdso: fill compat symtab in CRIU 2017-03-15 00:09:52 +03:00
pie-util-vdso.c build: Move everything criu related into criu directory 2016-02-15 15:32:45 +03:00
pie-util.c build: Move everything criu related into criu directory 2016-02-15 15:32:45 +03:00
pipes.c pipes: Plug pipe fd leak in "Unable to set a pipe size" error case. 2023-10-22 13:29:25 -07:00
plugin.c criu: Introduce a new device plugin hook for restore 2025-05-17 13:36:36 -07:00
proc_parse.c criu/proc_parse: support MAP_DROPPABLE mappings 2025-05-19 15:33:06 -07:00
protobuf-desc.c criu: Support C/R of pidfds 2024-10-26 22:18:22 -07:00
protobuf.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
pstree.c files: fork helpers without CLONE_FILES | CLONE_FS 2025-09-22 08:16:32 -07:00
rbtree.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
rst-malloc.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
seccomp.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
seize.c pstree: Add has_children function 2025-05-17 13:36:36 -07:00
servicefd.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
setproctitle.c string: define wrapers __setproctitle and __setproctitle_init to hide bsd headers 2023-04-15 21:17:21 -07:00
shmem.c criu/mem: refactor should_dump_page helper 2025-08-15 11:00:06 +01:00
sigact.c criu: move sigact dump/restore code into sigact.c 2024-09-11 16:02:11 -07:00
sigframe.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
signalfd.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
sk-inet.c criu/sockets: Restrict SO_PASSCRED and SO_PASSSEC to supported families 2025-09-04 07:22:33 -07:00
sk-netlink.c criu/sockets: Restrict SO_PASSCRED and SO_PASSSEC to supported families 2025-09-04 07:22:33 -07:00
sk-packet.c criu/sockets: Restrict SO_PASSCRED and SO_PASSSEC to supported families 2025-09-04 07:22:33 -07:00
sk-queue.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
sk-tcp.c sk-tcp: Move TCP socket options from SkOptsEntry to TcpOptsEntry 2024-09-11 16:02:11 -07:00
sk-unix.c criu/sockets: Restrict SO_PASSCRED and SO_PASSSEC to supported families 2025-09-04 07:22:33 -07:00
sockets.c criu/sockets: Restrict SO_PASSCRED and SO_PASSSEC to supported families 2025-09-04 07:22:33 -07:00
stats.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
string.c string: use our own __strlcpy and __strlcat to remove bsd headers 2023-04-15 21:17:21 -07:00
sysctl.c ipc_sysctl: Prioritize restoring IPC variables using non usernsd approach 2023-04-15 21:17:21 -07:00
sysfs_parse.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
timens.c criu: use proper format-specified to accommodate time_t 64-bit change 2024-09-11 16:02:11 -07:00
timer.c restore: use the new kernel interface to restore timers 2025-04-04 08:30:28 -07:00
timerfd.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
tls.c Fix some codespell warnings 2022-04-28 17:53:52 -07:00
tty.c tty: skip ioctl(TIOCSLCKTRMIOS) if possible 2024-09-11 16:02:11 -07:00
tun.c tun: don't parse buffers that have not been filled with data 2023-10-22 13:29:25 -07:00
uffd.c pagemap: use unsigned long for page counts 2025-09-23 11:05:14 +01:00
util.c criu: use libuuid for criu_run_id generation 2025-01-28 10:38:30 -08:00
uts_ns.c util: Include int.h (compilation fix) 2016-10-24 16:00:16 +03:00
vdso-compat.c Run 'make indent' on all C files 2021-09-03 10:31:00 -07:00
vdso.c criu/{mem, vdso, cr-restore}: introduce VMA_AREA_GUARD fake VMAs 2025-08-15 11:00:06 +01:00