add: if (addressSpec == B_EXACT_ADDRESS && IS_KERNEL_ADDRESS(address)) return B_BAD_VALUE;
context: _user_create_area(const char *userName, void **userAddress, uint32 addressSpec,	size_t size, uint32 lock, uint32 protection){	char name[B_OS_NAME_LENGTH];	area_id area;	void *address;	// filter out some unavailable values (for userland)	switch (addressSpec) {		case B_ANY_KERNEL_ADDRESS:		case B_EXACT_KERNEL_ADDRESS:			return B_BAD_VALUE;	}	if (protection & B_KERNEL_PROTECTION)		return B_BAD_VALUE;	if (!IS_USER_ADDRESS(userName)		|| !IS_USER_ADDRESS(userAddress)		|| user_strlcpy(name, userName, sizeof(name)) < B_OK		|| user_memcpy(&address, userAddress, sizeof(address)) < B_OK)		return B_BAD_ADDRESS;	area = create_area(name, &address, addressSpec, size, lock, protection);	if (area >= B_OK && user_memcpy(userAddress, &address, sizeof(address)) < B_OK) {		// ToDo: shouldn't I delete the area here?		return B_BAD_ADDRESS;	}	return area;}