Use __MAP_NOFAULT such that a client cannot use ftruncate and make the
X server crash. ok deraadt@, matthieu@
This commit is contained in:
parent
2c8cd3e507
commit
323f3c34c5
@ -26,6 +26,10 @@
|
|||||||
|
|
||||||
#include "xshmfenceint.h"
|
#include "xshmfenceint.h"
|
||||||
|
|
||||||
|
#ifndef __MAP_NOFAULT
|
||||||
|
#define __MAP_NOFAULT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !HAVE_MEMFD_CREATE
|
#if !HAVE_MEMFD_CREATE
|
||||||
#if HAVE_DECL___NR_MEMFD_CREATE
|
#if HAVE_DECL___NR_MEMFD_CREATE
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
@ -105,7 +109,7 @@ struct xshmfence *
|
|||||||
xshmfence_map_shm(int fd)
|
xshmfence_map_shm(int fd)
|
||||||
{
|
{
|
||||||
struct xshmfence *addr;
|
struct xshmfence *addr;
|
||||||
addr = mmap (NULL, sizeof (struct xshmfence) , PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
addr = mmap (NULL, sizeof (struct xshmfence) , PROT_READ|PROT_WRITE, MAP_SHARED | __MAP_NOFAULT, fd, 0);
|
||||||
if (addr == MAP_FAILED) {
|
if (addr == MAP_FAILED) {
|
||||||
close (fd);
|
close (fd);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user