From 8fad22bf840fc968171bee6cf294f026eb1e0d3a Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 9 Aug 2022 12:40:58 +0200 Subject: prog: generate very long file names Generate very long file names once in a while to provoke bugs like: https://github.com/google/gvisor/commit/f857f268eceb1cdee0b2bdfa218c969c84033fcd --- sys/linux/init.go | 12 ++++++++++++ sys/linux/sys.txt | 6 ++++++ sys/linux/sys.txt.const | 3 +++ 3 files changed, 21 insertions(+) (limited to 'sys/linux') diff --git a/sys/linux/init.go b/sys/linux/init.go index 6c486c2ed..480ac1d96 100644 --- a/sys/linux/init.go +++ b/sys/linux/init.go @@ -98,6 +98,18 @@ func InitTarget(target *prog.Target) { panic("unknown arch") } + target.SpecialFileLenghts = []int{ + int(target.GetConst("PATH_MAX")), + int(target.GetConst("UNIX_PATH_MAX")), + int(target.GetConst("NAME_MAX")), + int(target.GetConst("BTRFS_INO_LOOKUP_PATH_MAX")), + int(target.GetConst("BTRFS_INO_LOOKUP_USER_PATH_MAX")), + int(target.GetConst("SMB_PATH_MAX")), + int(target.GetConst("XT_CGROUP_PATH_MAX")), + int(target.GetConst("XENSTORE_REL_PATH_MAX")), + 1 << 16, // gVisor's MaxFilenameLen + } + if target.Arch == runtime.GOARCH { KCOV_INIT_TRACE = uintptr(target.GetConst("KCOV_INIT_TRACE")) KCOV_ENABLE = uintptr(target.GetConst("KCOV_ENABLE")) diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index 342633a8d..fc04a4385 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -56,6 +56,9 @@ include include include include +include +include +include resource fd[int32]: -1 resource fd_dir[fd]: AT_FDCWD @@ -1319,6 +1322,9 @@ _ = STA_PLL, STA_PPSFREQ, STA_PPSTIME, STA_FLL, STA_INS, STA_DEL, STA_UNSYNC, ST # clock_adjtime modes _ = ADJ_OFFSET, ADJ_FREQUENCY, ADJ_MAXERROR, ADJ_ESTERROR, ADJ_STATUS, ADJ_TIMECONST, ADJ_TAI, ADJ_SETOFFSET, ADJ_MICRO, ADJ_NANO, ADJ_TICK, ADJ_OFFSET_SINGLESHOT +# Consts for target.SpecialFileLenghts. +_ = SMB_PATH_MAX, XT_CGROUP_PATH_MAX, XENSTORE_REL_PATH_MAX + # misc _ = KCOV_INIT_TRACE, KCOV_ENABLE, KCOV_DISABLE, KCOV_TRACE_PC, KCOV_TRACE_CMP, PTRACE_TRACEME, SYSLOG_ACTION_CONSOLE_ON, SYSLOG_ACTION_CONSOLE_OFF, SYSLOG_ACTION_CONSOLE_LEVEL, SYSLOG_ACTION_CLEAR, __NR_mmap2 diff --git a/sys/linux/sys.txt.const b/sys/linux/sys.txt.const index c977820f5..d918fdc4b 100644 --- a/sys/linux/sys.txt.const +++ b/sys/linux/sys.txt.const @@ -503,6 +503,7 @@ SIGINFO_SIZE = 128 SIG_BLOCK = 0, mips64le:1 SIG_SETMASK = 2, mips64le:3 SIG_UNBLOCK = 1, mips64le:2 +SMB_PATH_MAX = 260 SPLICE_F_GIFT = 8 SPLICE_F_MORE = 4 SPLICE_F_MOVE = 1 @@ -586,6 +587,8 @@ WNOHANG = 1 WNOWAIT = 16777216 WSTOPPED = 2 WUNTRACED = 2 +XENSTORE_REL_PATH_MAX = 2048 +XT_CGROUP_PATH_MAX = 512 _LINUX_CAPABILITY_VERSION_1 = 429392688 _LINUX_CAPABILITY_VERSION_2 = 537333798 _LINUX_CAPABILITY_VERSION_3 = 537396514 -- cgit mrf-deployment