Fix linprocfs(4) /proc/self/mem semantics to more closely match Linux.
Steam's Anti-Cheat might depend on it. PR: 248223 Analyzed by: Alex S <iwtcex@gmail.com> Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D26816
This commit is contained in:
parent
1a34e9fad6
commit
91bc73618d
@ -1275,6 +1275,27 @@ linprocfs_doprocmaps(PFS_FILL_ARGS)
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
* Filler function for proc/pid/mem
|
||||
*/
|
||||
static int
|
||||
linprocfs_doprocmem(PFS_FILL_ARGS)
|
||||
{
|
||||
ssize_t resid;
|
||||
int error;
|
||||
|
||||
resid = uio->uio_resid;
|
||||
error = procfs_doprocmem(PFS_FILL_ARGNAMES);
|
||||
|
||||
if (uio->uio_rw == UIO_READ && resid != uio->uio_resid)
|
||||
return (0);
|
||||
|
||||
if (error == EFAULT)
|
||||
error = EIO;
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
* Criteria for interface name translation
|
||||
*/
|
||||
@ -1853,7 +1874,7 @@ linprocfs_init(PFS_INIT_ARGS)
|
||||
NULL, &procfs_notsystem, NULL, 0);
|
||||
pfs_create_file(dir, "maps", &linprocfs_doprocmaps,
|
||||
NULL, NULL, NULL, PFS_RD);
|
||||
pfs_create_file(dir, "mem", &procfs_doprocmem,
|
||||
pfs_create_file(dir, "mem", &linprocfs_doprocmem,
|
||||
procfs_attr_rw, &procfs_candebug, NULL, PFS_RDWR | PFS_RAW);
|
||||
pfs_create_file(dir, "mounts", &linprocfs_domtab,
|
||||
NULL, NULL, NULL, PFS_RD);
|
||||
|
Loading…
Reference in New Issue
Block a user