Mark procfs-based process debugging as deprecated for FreeBSD 13.
Attempting to use ioctls on /proc/<pid>/mem to control a process will trigger warnings on the console. The <sys/pioctl.h> include file will also now emit a compile-time warning when used from userland. Reviewed by: emaste MFC after: 1 week Relnotes: yes Differential Revision: https://reviews.freebsd.org/D23822
This commit is contained in:
parent
2e1dfb346f
commit
8d8a74e69e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=359047
@ -121,6 +121,9 @@ CFLAGS.gcc.ioctl.c+= -Wno-redundant-decls
|
||||
|
||||
CFLAGS.gcc+= ${CFLAGS.gcc.${.IMPSRC}}
|
||||
|
||||
# Ignore deprecation warning in <sys/pioctl.h>
|
||||
CFLAGS.ioctl.c+= -Wno-\#warnings
|
||||
|
||||
DEPENDOBJS+= tables.h
|
||||
tables.h: mktables
|
||||
sh ${.CURDIR}/mktables ${SYSROOT:U${DESTDIR}}${INCLUDEDIR} ${.TARGET}
|
||||
|
@ -69,11 +69,54 @@ procfs_ioctl(PFS_IOCTL_ARGS)
|
||||
#ifdef COMPAT_FREEBSD6
|
||||
int ival;
|
||||
#endif
|
||||
static struct timeval lasttime;
|
||||
static struct timeval interval = { .tv_sec = 1, .tv_usec = 0 };
|
||||
|
||||
KASSERT(p != NULL,
|
||||
("%s() called without a process", __func__));
|
||||
PROC_LOCK_ASSERT(p, MA_OWNED);
|
||||
|
||||
switch (cmd) {
|
||||
#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
|
||||
case _IOC(IOC_IN, 'p', 1, 0):
|
||||
#endif
|
||||
#ifdef COMPAT_FREEBSD6
|
||||
case _IO('p', 1):
|
||||
#endif
|
||||
case PIOCBIS:
|
||||
#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
|
||||
case _IOC(IOC_IN, 'p', 2, 0):
|
||||
#endif
|
||||
#ifdef COMPAT_FREEBSD6
|
||||
case _IO('p', 2):
|
||||
#endif
|
||||
case PIOCBIC:
|
||||
#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
|
||||
case _IOC(IOC_IN, 'p', 3, 0):
|
||||
#endif
|
||||
#ifdef COMPAT_FREEBSD6
|
||||
case _IO('p', 3):
|
||||
#endif
|
||||
case PIOCSFL:
|
||||
case PIOCGFL:
|
||||
case PIOCWAIT:
|
||||
case PIOCSTATUS:
|
||||
#ifdef COMPAT_FREEBSD32
|
||||
case PIOCWAIT32:
|
||||
case PIOCSTATUS32:
|
||||
#endif
|
||||
#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
|
||||
case _IOC(IOC_IN, 'p', 5, 0):
|
||||
#endif
|
||||
#ifdef COMPAT_FREEBSD6
|
||||
case _IO('p', 5):
|
||||
#endif
|
||||
case PIOCCONT:
|
||||
if (ratecheck(&lasttime, &interval) != 0)
|
||||
gone_in(13, "procfs-based process debugging");
|
||||
break;
|
||||
}
|
||||
|
||||
error = 0;
|
||||
switch (cmd) {
|
||||
#if defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4) || defined(COMPAT_43)
|
||||
|
@ -41,6 +41,10 @@
|
||||
#ifndef _SYS_PIOCTL_H
|
||||
# define _SYS_PIOCTL_H
|
||||
|
||||
#ifndef _KERNEL
|
||||
#warning "<sys/pioctl.h> is deprecated, ptrace() should be used instead"
|
||||
#endif
|
||||
|
||||
# include <sys/ioccom.h>
|
||||
|
||||
struct procfs_status {
|
||||
|
Loading…
Reference in New Issue
Block a user