c
int validate_vma(struct vm_area_struct *vma, unsigned long addr, unsigned long end) {
    if (vma && (addr < vma->vm_start || end > vma->vm_end)) {
        return -EINVAL;
    }
    return 0;
}

// ...

if (validate_vma(curr, addr, end)) {
    // Handle validation error
    return -EINVAL;
}
