diff options
Diffstat (limited to 'usr/src/uts/common/io/mem.c')
| -rw-r--r-- | usr/src/uts/common/io/mem.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/usr/src/uts/common/io/mem.c b/usr/src/uts/common/io/mem.c index 950fab1272..fcea4a8f03 100644 --- a/usr/src/uts/common/io/mem.c +++ b/usr/src/uts/common/io/mem.c @@ -225,10 +225,19 @@ mmopen(dev_t *devp, int flag, int typ, struct cred *cred)  	case M_NULL:  	case M_ZERO:  	case M_FULL: +		/* standard devices */ +		break; +  	case M_MEM:  	case M_KMEM:  	case M_ALLKMEM: -		/* standard devices */ +		/* +		 * These devices should never be visible in a zone, but if they +		 * somehow do get created we refuse to allow the zone to use +		 * them. +		 */ +		if (crgetzoneid(cred) != GLOBAL_ZONEID) +			return (EACCES);  		break;  	default: | 
