msync(2) must return ENOMEM and not EINVAL when the address is outside the
allowed range or when one or more pages are not mapped. This according to The Open Group Base Specifications Issue 7. Discussed with: attilio, Bruce Evans Reviewed by: alc, Garrett Cooper Reported by: ATF MFC after: 2 weeks Sponsored by: EMC / Isilon storage division
This commit is contained in:
parent
8c9ec09dd9
commit
1108602cbc
@ -87,11 +87,13 @@ The
|
|||||||
.Fa addr
|
.Fa addr
|
||||||
argument
|
argument
|
||||||
is not a multiple of the hardware page size.
|
is not a multiple of the hardware page size.
|
||||||
.It Bq Er EINVAL
|
.It Bq Er ENOMEM
|
||||||
The
|
The addresses in the range starting at
|
||||||
|
.Fa addr
|
||||||
|
and continuing for
|
||||||
.Fa len
|
.Fa len
|
||||||
argument
|
bytes are outside the range allowed for the address space of a
|
||||||
is too large or negative.
|
process or specify one or more pages that are not mapped.
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
The
|
The
|
||||||
.Fa flags
|
.Fa flags
|
||||||
|
@ -556,7 +556,7 @@ sys_msync(td, uap)
|
|||||||
case KERN_SUCCESS:
|
case KERN_SUCCESS:
|
||||||
return (0);
|
return (0);
|
||||||
case KERN_INVALID_ADDRESS:
|
case KERN_INVALID_ADDRESS:
|
||||||
return (EINVAL); /* Sun returns ENOMEM? */
|
return (ENOMEM);
|
||||||
case KERN_INVALID_ARGUMENT:
|
case KERN_INVALID_ARGUMENT:
|
||||||
return (EBUSY);
|
return (EBUSY);
|
||||||
case KERN_FAILURE:
|
case KERN_FAILURE:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user