2004-08-30 Roland McGrath <roland@redhat.com>

* system.c (personality_options): Hard-code values here.
	Don't #include <linux/personality.h> at all.
	Fixes RH#130965.
This commit is contained in:
Roland McGrath 2004-08-31 06:48:46 +00:00
parent a0b9ef14b0
commit ced50da46b

241
system.c
View File

@ -49,17 +49,6 @@
#include <sys/syscall.h>
#ifdef SYS_personality
/* Workaround for kernel namespace pollution. */
#define _LINUX_PTRACE_H
/* Yuck yuck yuck. We can't include linux/ptrace.h, but personality.h
makes a declaration with struct pt_regs, which is defined there. */
struct pt_regs;
#define sys_personality kernel_sys_personality
#include <linux/personality.h>
#undef sys_personality
#endif /* SYS_personality */
#ifdef SYS_capget
#include <linux/capability.h>
#endif
@ -124,34 +113,30 @@ struct tcb *tcp;
return 0;
}
/* These are not macros, but enums. We just copy the values by hand
from Linux 2.6.9 here. */
static struct xlat personality_options[] = {
#ifdef PER_LINUX
{ PER_LINUX, "PER_LINUX" },
#endif
#ifdef PER_LINUX_32BIT
{ PER_LINUX_32BIT, "PER_LINUX" },
#endif
#ifdef PER_SVR4
{ PER_SVR4, "PER_SVR4" },
#endif
#ifdef PER_SVR3
{ PER_SVR3, "PER_SVR3" },
#endif
#ifdef PER_SCOSVR3
{ PER_SCOSVR3, "PER_SCOSVR3" },
#endif
#ifdef PER_WYSEV386
{ PER_WYSEV386, "PER_WYSEV386" },
#endif
#ifdef PER_ISCR4
{ PER_ISCR4, "PER_ISCR4" },
#endif
#ifdef PER_BSD
{ PER_BSD, "PER_BSD" },
#endif
#ifdef PER_XENIX
{ PER_XENIX, "PER_XENIX" },
#endif
{ 0, "PER_LINUX" },
{ 0x00800000, "PER_LINUX_32BIT"},
{ 0x04100001, "PER_SVR4" },
{ 0x05000002, "PER_SVR3" },
{ 0x07000003, "PER_SCOSVR3" },
{ 0x06000003, "PER_OSR5" },
{ 0x05000004, "PER_WYSEV386" },
{ 0x04000005, "PER_ISCR4" },
{ 0x00000006, "PER_BSD" },
{ 0x04000006, "PER_SUNOS" },
{ 0x05000007, "PER_XENIX" },
{ 0x00000008, "PER_LINUX32" },
{ 0x08000008, "PER_LINUX32_3GB"},
{ 0x04000009, "PER_IRIX32" },
{ 0x0400000a, "PER_IRIXN32" },
{ 0x0400000b, "PER_IRIX64" },
{ 0x0000000c, "PER_RISCOS" },
{ 0x0400000d, "PER_SOLARIS" },
{ 0x0410000e, "PER_UW7" },
{ 0x0000000f, "PER_OSF4" },
{ 0x00000010, "PER_HPUX" },
{ 0, NULL },
};
@ -883,247 +868,247 @@ static struct xlat syssgi_options[] = {
#ifdef SGI_GET_FP_PRECISE
{ SGI_GET_FP_PRECISE, "SGI_GET_FP_PRECISE" },
#endif
#ifdef SGI_GET_CONFIG_SMM
#ifdef SGI_GET_CONFIG_SMM
{ SGI_GET_CONFIG_SMM, "SGI_GET_CONFIG_SMM" },
#endif
#ifdef SGI_FP_IMPRECISE_SUPP
#ifdef SGI_FP_IMPRECISE_SUPP
{ SGI_FP_IMPRECISE_SUPP,"SGI_FP_IMPRECISE_SUPP" },
#endif
#ifdef SGI_CONFIG_NSMM_SUPP
#ifdef SGI_CONFIG_NSMM_SUPP
{ SGI_CONFIG_NSMM_SUPP, "SGI_CONFIG_NSMM_SUPP" },
#endif
#ifdef SGI_RT_TSTAMP_CREATE
#ifdef SGI_RT_TSTAMP_CREATE
{ SGI_RT_TSTAMP_CREATE, "SGI_RT_TSTAMP_CREATE" },
#endif
#ifdef SGI_RT_TSTAMP_DELETE
#ifdef SGI_RT_TSTAMP_DELETE
{ SGI_RT_TSTAMP_DELETE, "SGI_RT_TSTAMP_DELETE" },
#endif
#ifdef SGI_RT_TSTAMP_START
#ifdef SGI_RT_TSTAMP_START
{ SGI_RT_TSTAMP_START, "SGI_RT_TSTAMP_START" },
#endif
#ifdef SGI_RT_TSTAMP_STOP
#ifdef SGI_RT_TSTAMP_STOP
{ SGI_RT_TSTAMP_STOP, "SGI_RT_TSTAMP_STOP" },
#endif
#ifdef SGI_RT_TSTAMP_ADDR
#ifdef SGI_RT_TSTAMP_ADDR
{ SGI_RT_TSTAMP_ADDR, "SGI_RT_TSTAMP_ADDR" },
#endif
#ifdef SGI_RT_TSTAMP_MASK
#ifdef SGI_RT_TSTAMP_MASK
{ SGI_RT_TSTAMP_MASK, "SGI_RT_TSTAMP_MASK" },
#endif
#ifdef SGI_RT_TSTAMP_EOB_MODE
#ifdef SGI_RT_TSTAMP_EOB_MODE
{ SGI_RT_TSTAMP_EOB_MODE,"SGI_RT_TSTAMP_EOB_MODE"},
#endif
#ifdef SGI_USE_FP_BCOPY
#ifdef SGI_USE_FP_BCOPY
{ SGI_USE_FP_BCOPY, "SGI_USE_FP_BCOPY" },
#endif
#ifdef SGI_GET_UST
#ifdef SGI_GET_UST
{ SGI_GET_UST, "SGI_GET_UST" },
#endif
#ifdef SGI_SPECULATIVE_EXEC
#ifdef SGI_SPECULATIVE_EXEC
{ SGI_SPECULATIVE_EXEC, "SGI_SPECULATIVE_EXEC" },
#endif
#ifdef SGI_XLV_NEXT_RQST
#ifdef SGI_XLV_NEXT_RQST
{ SGI_XLV_NEXT_RQST, "SGI_XLV_NEXT_RQST" },
#endif
#ifdef SGI_XLV_ATTR_CURSOR
#ifdef SGI_XLV_ATTR_CURSOR
{ SGI_XLV_ATTR_CURSOR, "SGI_XLV_ATTR_CURSOR" },
#endif
#ifdef SGI_XLV_ATTR_GET
#ifdef SGI_XLV_ATTR_GET
{ SGI_XLV_ATTR_GET, "SGI_XLV_ATTR_GET" },
#endif
#ifdef SGI_XLV_ATTR_SET
#ifdef SGI_XLV_ATTR_SET
{ SGI_XLV_ATTR_SET, "SGI_XLV_ATTR_SET" },
#endif
#ifdef SGI_BTOOLSIZE
{ SGI_BTOOLSIZE, "SGI_BTOOLSIZE" },
#endif
#ifdef SGI_BTOOLGET
#ifdef SGI_BTOOLGET
{ SGI_BTOOLGET, "SGI_BTOOLGET" },
#endif
#ifdef SGI_BTOOLREINIT
#ifdef SGI_BTOOLREINIT
{ SGI_BTOOLREINIT, "SGI_BTOOLREINIT" },
#endif
#ifdef SGI_CREATE_UUID
#ifdef SGI_CREATE_UUID
{ SGI_CREATE_UUID, "SGI_CREATE_UUID" },
#endif
#ifdef SGI_NOFPE
#ifdef SGI_NOFPE
{ SGI_NOFPE, "SGI_NOFPE" },
#endif
#ifdef SGI_OLD_SOFTFP
#ifdef SGI_OLD_SOFTFP
{ SGI_OLD_SOFTFP, "SGI_OLD_SOFTFP" },
#endif
#ifdef SGI_FS_INUMBERS
#ifdef SGI_FS_INUMBERS
{ SGI_FS_INUMBERS, "SGI_FS_INUMBERS" },
#endif
#ifdef SGI_FS_BULKSTAT
#ifdef SGI_FS_BULKSTAT
{ SGI_FS_BULKSTAT, "SGI_FS_BULKSTAT" },
#endif
#ifdef SGI_RT_TSTAMP_WAIT
#ifdef SGI_RT_TSTAMP_WAIT
{ SGI_RT_TSTAMP_WAIT, "SGI_RT_TSTAMP_WAIT" },
#endif
#ifdef SGI_RT_TSTAMP_UPDATE
#ifdef SGI_RT_TSTAMP_UPDATE
{ SGI_RT_TSTAMP_UPDATE, "SGI_RT_TSTAMP_UPDATE" },
#endif
#ifdef SGI_PATH_TO_HANDLE
#ifdef SGI_PATH_TO_HANDLE
{ SGI_PATH_TO_HANDLE, "SGI_PATH_TO_HANDLE" },
#endif
#ifdef SGI_PATH_TO_FSHANDLE
#ifdef SGI_PATH_TO_FSHANDLE
{ SGI_PATH_TO_FSHANDLE, "SGI_PATH_TO_FSHANDLE" },
#endif
#ifdef SGI_FD_TO_HANDLE
#ifdef SGI_FD_TO_HANDLE
{ SGI_FD_TO_HANDLE, "SGI_FD_TO_HANDLE" },
#endif
#ifdef SGI_OPEN_BY_HANDLE
#ifdef SGI_OPEN_BY_HANDLE
{ SGI_OPEN_BY_HANDLE, "SGI_OPEN_BY_HANDLE" },
#endif
#ifdef SGI_READLINK_BY_HANDLE
#ifdef SGI_READLINK_BY_HANDLE
{ SGI_READLINK_BY_HANDLE,"SGI_READLINK_BY_HANDLE"},
#endif
#ifdef SGI_READ_DANGID
#ifdef SGI_READ_DANGID
{ SGI_READ_DANGID, "SGI_READ_DANGID" },
#endif
#ifdef SGI_CONST
#ifdef SGI_CONST
{ SGI_CONST, "SGI_CONST" },
#endif
#ifdef SGI_XFS_FSOPERATIONS
#ifdef SGI_XFS_FSOPERATIONS
{ SGI_XFS_FSOPERATIONS, "SGI_XFS_FSOPERATIONS" },
#endif
#ifdef SGI_SETASH
#ifdef SGI_SETASH
{ SGI_SETASH, "SGI_SETASH" },
#endif
#ifdef SGI_GETASH
#ifdef SGI_GETASH
{ SGI_GETASH, "SGI_GETASH" },
#endif
#ifdef SGI_SETPRID
#ifdef SGI_SETPRID
{ SGI_SETPRID, "SGI_SETPRID" },
#endif
#ifdef SGI_GETPRID
#ifdef SGI_GETPRID
{ SGI_GETPRID, "SGI_GETPRID" },
#endif
#ifdef SGI_SETSPINFO
#ifdef SGI_SETSPINFO
{ SGI_SETSPINFO, "SGI_SETSPINFO" },
#endif
#ifdef SGI_GETSPINFO
#ifdef SGI_GETSPINFO
{ SGI_GETSPINFO, "SGI_GETSPINFO" },
#endif
#ifdef SGI_SHAREII
#ifdef SGI_SHAREII
{ SGI_SHAREII, "SGI_SHAREII" },
#endif
#ifdef SGI_NEWARRAYSESS
#ifdef SGI_NEWARRAYSESS
{ SGI_NEWARRAYSESS, "SGI_NEWARRAYSESS" },
#endif
#ifdef SGI_GETDFLTPRID
#ifdef SGI_GETDFLTPRID
{ SGI_GETDFLTPRID, "SGI_GETDFLTPRID" },
#endif
#ifdef SGI_SET_DISMISSED_EXC_CNT
#ifdef SGI_SET_DISMISSED_EXC_CNT
{ SGI_SET_DISMISSED_EXC_CNT,"SGI_SET_DISMISSED_EXC_CNT" },
#endif
#ifdef SGI_GET_DISMISSED_EXC_CNT
#ifdef SGI_GET_DISMISSED_EXC_CNT
{ SGI_GET_DISMISSED_EXC_CNT,"SGI_GET_DISMISSED_EXC_CNT" },
#endif
#ifdef SGI_CYCLECNTR_SIZE
#ifdef SGI_CYCLECNTR_SIZE
{ SGI_CYCLECNTR_SIZE, "SGI_CYCLECNTR_SIZE" },
#endif
#ifdef SGI_QUERY_FASTTIMER
#ifdef SGI_QUERY_FASTTIMER
{ SGI_QUERY_FASTTIMER, "SGI_QUERY_FASTTIMER" },
#endif
#ifdef SGI_PIDSINASH
#ifdef SGI_PIDSINASH
{ SGI_PIDSINASH, "SGI_PIDSINASH" },
#endif
#ifdef SGI_ULI
#ifdef SGI_ULI
{ SGI_ULI, "SGI_ULI" },
#endif
#ifdef SGI_LPG_SHMGET
#ifdef SGI_LPG_SHMGET
{ SGI_LPG_SHMGET, "SGI_LPG_SHMGET" },
#endif
#ifdef SGI_LPG_MAP
#ifdef SGI_LPG_MAP
{ SGI_LPG_MAP, "SGI_LPG_MAP" },
#endif
#ifdef SGI_CACHEFS_SYS
#ifdef SGI_CACHEFS_SYS
{ SGI_CACHEFS_SYS, "SGI_CACHEFS_SYS" },
#endif
#ifdef SGI_NFSNOTIFY
#ifdef SGI_NFSNOTIFY
{ SGI_NFSNOTIFY, "SGI_NFSNOTIFY" },
#endif
#ifdef SGI_LOCKDSYS
#ifdef SGI_LOCKDSYS
{ SGI_LOCKDSYS, "SGI_LOCKDSYS" },
#endif
#ifdef SGI_EVENTCTR
#ifdef SGI_EVENTCTR
{ SGI_EVENTCTR, "SGI_EVENTCTR" },
#endif
#ifdef SGI_GETPRUSAGE
#ifdef SGI_GETPRUSAGE
{ SGI_GETPRUSAGE, "SGI_GETPRUSAGE" },
#endif
#ifdef SGI_PROCMASK_LOCATION
#ifdef SGI_PROCMASK_LOCATION
{ SGI_PROCMASK_LOCATION,"SGI_PROCMASK_LOCATION" },
#endif
#ifdef SGI_UNUSED
#ifdef SGI_UNUSED
{ SGI_UNUSED, "SGI_UNUSED" },
#endif
#ifdef SGI_CKPT_SYS
#ifdef SGI_CKPT_SYS
{ SGI_CKPT_SYS, "SGI_CKPT_SYS" },
#endif
#ifdef SGI_CKPT_SYS
#ifdef SGI_CKPT_SYS
{ SGI_CKPT_SYS, "SGI_CKPT_SYS" },
#endif
#ifdef SGI_GETGRPPID
#ifdef SGI_GETGRPPID
{ SGI_GETGRPPID, "SGI_GETGRPPID" },
#endif
#ifdef SGI_GETSESPID
#ifdef SGI_GETSESPID
{ SGI_GETSESPID, "SGI_GETSESPID" },
#endif
#ifdef SGI_ENUMASHS
#ifdef SGI_ENUMASHS
{ SGI_ENUMASHS, "SGI_ENUMASHS" },
#endif
#ifdef SGI_SETASMACHID
#ifdef SGI_SETASMACHID
{ SGI_SETASMACHID, "SGI_SETASMACHID" },
#endif
#ifdef SGI_GETASMACHID
#ifdef SGI_GETASMACHID
{ SGI_GETASMACHID, "SGI_GETASMACHID" },
#endif
#ifdef SGI_GETARSESS
#ifdef SGI_GETARSESS
{ SGI_GETARSESS, "SGI_GETARSESS" },
#endif
#ifdef SGI_JOINARRAYSESS
#ifdef SGI_JOINARRAYSESS
{ SGI_JOINARRAYSESS, "SGI_JOINARRAYSESS" },
#endif
#ifdef SGI_SPROC_KILL
#ifdef SGI_SPROC_KILL
{ SGI_SPROC_KILL, "SGI_SPROC_KILL" },
#endif
#ifdef SGI_DBA_CONFIG
#ifdef SGI_DBA_CONFIG
{ SGI_DBA_CONFIG, "SGI_DBA_CONFIG" },
#endif
#ifdef SGI_RELEASE_NAME
#ifdef SGI_RELEASE_NAME
{ SGI_RELEASE_NAME, "SGI_RELEASE_NAME" },
#endif
#ifdef SGI_SYNCH_CACHE_HANDLER
#ifdef SGI_SYNCH_CACHE_HANDLER
{ SGI_SYNCH_CACHE_HANDLER,"SGI_SYNCH_CACHE_HANDLER"},
#endif
#ifdef SGI_SWASH_INIT
#ifdef SGI_SWASH_INIT
{ SGI_SWASH_INIT, "SGI_SWASH_INIT" },
#endif
#ifdef SGI_NUMA_MIGR_PAGE
#ifdef SGI_NUMA_MIGR_PAGE
{ SGI_NUMA_MIGR_PAGE, "SGI_NUMA_MIGR_PAGE" },
#endif
#ifdef SGI_NUMA_MIGR_PAGE_ALT
#ifdef SGI_NUMA_MIGR_PAGE_ALT
{ SGI_NUMA_MIGR_PAGE_ALT,"SGI_NUMA_MIGR_PAGE_ALT"},
#endif
#ifdef SGI_KAIO_USERINIT
#ifdef SGI_KAIO_USERINIT
{ SGI_KAIO_USERINIT, "SGI_KAIO_USERINIT" },
#endif
#ifdef SGI_KAIO_READ
#ifdef SGI_KAIO_READ
{ SGI_KAIO_READ, "SGI_KAIO_READ" },
#endif
#ifdef SGI_KAIO_WRITE
#ifdef SGI_KAIO_WRITE
{ SGI_KAIO_WRITE, "SGI_KAIO_WRITE" },
#endif
#ifdef SGI_KAIO_SUSPEND
#ifdef SGI_KAIO_SUSPEND
{ SGI_KAIO_SUSPEND, "SGI_KAIO_SUSPEND" },
#endif
#ifdef SGI_KAIO_STATS
#ifdef SGI_KAIO_STATS
{ SGI_KAIO_STATS, "SGI_KAIO_STATS" },
#endif
#ifdef SGI_INITIAL_PT_SPROC
#ifdef SGI_INITIAL_PT_SPROC
{ SGI_INITIAL_PT_SPROC, "SGI_INITIAL_PT_SPROC" },
#endif
{ 0, NULL },
@ -1353,7 +1338,7 @@ struct tcb *tcp;
if (args.mflags & VX_MS_SNAPSHOT) {
tprintf (", snapof=");
printstr (tcp,
(long) args.primaryspec,
(long) args.primaryspec,
-1);
if (args.snapsize > 0)
tprintf (", snapsize=%ld", args.snapsize);
@ -1498,7 +1483,7 @@ struct tcb *tcp;
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
}
}
}
return 0;
}
@ -1550,7 +1535,7 @@ struct tcb *tcp;
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
}
}
}
return 0;
}
@ -1965,7 +1950,7 @@ struct tcb *tcp;
char ctl[1024];
size_t len;
int i, numeric;
if (entering(tcp)) {
if (tcp->u_arg[1] < 0 || tcp->u_arg[1] > CTL_MAXNAME ||
(umoven(tcp, tcp->u_arg[0], tcp->u_arg[1] * sizeof(int),
@ -1996,7 +1981,7 @@ struct tcb *tcp;
if (!syserror(tcp) && (umove(tcp, tcp->u_arg[3], &len) >= 0)) {
printstr(tcp, tcp->u_arg[2], len);
tprintf(", [%u], ", len);
} else
} else
tprintf("%#lx, %#lx, ", tcp->u_arg[2], tcp->u_arg[3]);
printstr(tcp, tcp->u_arg[4], tcp->u_arg[5]);
tprintf(", %lu", tcp->u_arg[5]);
@ -2011,9 +1996,9 @@ struct tcb *tcp;
#include <sys/elf.h>
static struct xlat ksym_flags[] = {
{ STT_NOTYPE, "STT_NOTYPE" },
{ STT_FUNC, "STT_FUNC" },
{ STT_OBJECT, "STT_OBJECT" },
{ STT_NOTYPE, "STT_NOTYPE" },
{ STT_FUNC, "STT_FUNC" },
{ STT_OBJECT, "STT_OBJECT" },
{ 0, NULL },
};
@ -2150,7 +2135,7 @@ struct tcb *tcp;
if (iov.tio_udatainlen != sizeof cni ||
umove (tcp, (long) iov.tio_udatain, &cni) < 0)
goto bad_out;
if (cni.info_len != sizeof info ||
if (cni.info_len != sizeof info ||
iov.tio_udataoutlen != sizeof &info ||
umove (tcp, (long) iov.tio_udataout, &info) < 0)
goto bad_out;
@ -2158,7 +2143,7 @@ struct tcb *tcp;
info.node_num, info.node_totalcpus,
info.node_onlinecpus);
break;
default:
bad_out:
if (iov.tio_udataoutlen) {