Re: [PATCH 7/7] uts namespaces: Implement CLONE_NEWUTS flag
From: Dave Hansen
Date: Mon May 01 2006 - 16:29:06 EST
On Mon, 2006-05-01 at 14:53 -0500, Serge E. Hallyn wrote:
> +struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns)
> +{
> + struct uts_namespace *ns;
> +
> + ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
> + if (ns) {
> + memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
> + kref_init(&ns->kref);
> + }
> + return ns;
> +}
Very small nit...
Would this memcpy be more appropriate as a strncpy()?
> +int unshare_utsname(unsigned long unshare_flags, struct uts_namespace **new_uts)
> +{
> + if (unshare_flags & CLONE_NEWUTS) {
> + if (!capable(CAP_SYS_ADMIN))
> + return -EPERM;
> +
> + *new_uts = clone_uts_ns(current->uts_ns);
> + if (!*new_uts)
> + return -ENOMEM;
> + }
> +
> + return 0;
> +}
Would it be a bit nicer to use the ERR_PTR() mechanism here instead of
the double-pointer bit?
I've always liked those a bit better because there's no hiding the fact
of what is actually a return value from a function.
-- Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/