linux(4): Export the AT_EXECFN depending on the process osreldata

AT_EXECFN has appeared in the 2.6.26 Linux kernel first time.

Reviewed by:		emaste
Differential Revision:	https://reviews.freebsd.org/D39647
MFC after:		1 month
This commit is contained in:
Dmitry Chagin 2023-04-22 22:17:36 +03:00
parent 40c36c4674
commit 70eab81d6f
2 changed files with 3 additions and 1 deletions

View File

@ -528,7 +528,8 @@ __linuxN(copyout_auxargs)(struct image_params *imgp, uintptr_t base)
AUXARGS_ENTRY(pos, LINUX_AT_SECURE, issetugid);
if (p->p_osrel >= LINUX_KERNVER_2006030 || p->p_osrel == 0)
AUXARGS_ENTRY_PTR(pos, LINUX_AT_RANDOM, imgp->canary);
if (imgp->execpathp != 0)
if ((p->p_osrel >= LINUX_KERNVER_2006026 || p->p_osrel == 0) &&
imgp->execpathp != 0)
AUXARGS_ENTRY(pos, LINUX_AT_EXECFN, PTROUT(imgp->execpathp));
if (args->execfd != -1)
AUXARGS_ENTRY(pos, AT_EXECFD, args->execfd);

View File

@ -58,6 +58,7 @@ int linux_kernver(struct thread *td);
#define LINUX_VERSION_STR LINUX_XKERNVERSTR(LINUX_KVERSION.LINUX_KPATCHLEVEL.LINUX_KSUBLEVEL)
#define LINUX_KERNVER_2004000 LINUX_KERNVER(2,4,0)
#define LINUX_KERNVER_2006026 LINUX_KERNVER(2,6,26)
#define LINUX_KERNVER_2006030 LINUX_KERNVER(2,6,30)
#define LINUX_KERNVER_2006039 LINUX_KERNVER(2,6,39)
#define LINUX_KERNVER_5004000 LINUX_KERNVER(5,4,0)