mirror of
https://github.com/torvalds/linux.git
synced 2026-03-13 22:36:17 +01:00
Inheriting the vDSO from the host is problematic. The values read from the time functions will not be correct for the UML kernel. Furthermore the start and end of the vDSO are not stable or detectable by userspace. Specifically the vDSO datapages start before AT_SYSINFO_EHDR and the vDSO itself is larger than a single page. This codepath is only used on 32bit x86 UML. In my testing with both 32bit and 64bit hosts the passthrough functionality has always been disabled anyways due to the checks against envp in scan_elf_aux(). Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://patch.msgid.link/20251028-uml-remove-32bit-pseudo-vdso-v1-4-e930063eff5f@weissschuh.net Signed-off-by: Johannes Berg <johannes.berg@intel.com>
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#define __NO_FORTIFY
|
|
#include <linux/types.h>
|
|
#include <linux/module.h>
|
|
|
|
/*
|
|
* This file exports some critical string functions and compiler
|
|
* built-in functions (where calls are emitted by the compiler
|
|
* itself that we cannot avoid even in kernel code) to modules.
|
|
*
|
|
* "_user.c" code that previously used exports here such as hostfs
|
|
* really should be considered part of the 'hypervisor' and define
|
|
* its own API boundary like hostfs does now; don't add exports to
|
|
* this file for such cases.
|
|
*/
|
|
|
|
/* If it's not defined, the export is included in lib/string.c.*/
|
|
#ifdef __HAVE_ARCH_STRSTR
|
|
#undef strstr
|
|
EXPORT_SYMBOL(strstr);
|
|
#endif
|
|
|
|
#ifndef __x86_64__
|
|
#undef memcpy
|
|
extern void *memcpy(void *, const void *, size_t);
|
|
EXPORT_SYMBOL(memcpy);
|
|
extern void *memmove(void *, const void *, size_t);
|
|
EXPORT_SYMBOL(memmove);
|
|
#undef memset
|
|
extern void *memset(void *, int, size_t);
|
|
EXPORT_SYMBOL(memset);
|
|
#endif
|
|
|
|
#ifdef _FORTIFY_SOURCE
|
|
extern int __sprintf_chk(char *str, int flag, size_t len, const char *format);
|
|
EXPORT_SYMBOL(__sprintf_chk);
|
|
#endif
|