Pavel Emelyanov wrote: > [snip] > >>> +static struct long_clone_arg *get_long_clone_arg(int __user >>> *child_tidptr) >>> +{ >>> + int size; >>> + struct long_clone_arg *carg; >>> + >>> + if (get_user(size, child_tidptr)) >>> + return ERR_PTR(-EFAULT); >>> + >>> + if (size > sizeof(struct long_clone_arg)) >>> + return ERR_PTR(-EINVAL); >> >> This means that software built against a newer kernel won't work on an >> older one. Surely that's not intended? > > It is intended. If I ask an old kernel to clone the mq namespace, but > it doesn't support such, that I'd better like to get an -EINVAL error > rather than be silently held in an old global namespace. That rules out using the struct for things like child_tidptr, the desired pid for C/R, etc. I think the version Dave Hansen proposed would be better, or if it's really just for bits, use an array rather than a struct to make that obvious. > [snip] > -- Daniel Hokka Zakrisson _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers