[bug report] clone3: allow spawning processes into cgroups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Christian Brauner,

The patch ef2c41cf38a7: "clone3: allow spawning processes into
cgroups" from Feb 5, 2020, leads to the following static checker
warning:

	kernel/fork.c:2632 copy_clone_args_from_user()
	warn: unsigned 'args.cgroup' is never less than zero.

kernel/fork.c
  2598  noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs,
  2599                                                struct clone_args __user *uargs,
  2600                                                size_t usize)
  2601  {
  2602          int err;
  2603          struct clone_args args;
  2604          pid_t *kset_tid = kargs->set_tid;
  2605  
  2606          if (unlikely(usize > PAGE_SIZE))
  2607                  return -E2BIG;
  2608          if (unlikely(usize < CLONE_ARGS_SIZE_VER0))
  2609                  return -EINVAL;
  2610  
  2611          err = copy_struct_from_user(&args, sizeof(args), uargs, usize);
  2612          if (err)
  2613                  return err;
  2614  
  2615          if (unlikely(args.set_tid_size > MAX_PID_NS_LEVEL))
  2616                  return -EINVAL;
  2617  
  2618          if (unlikely(!args.set_tid && args.set_tid_size > 0))
  2619                  return -EINVAL;
  2620  
  2621          if (unlikely(args.set_tid && args.set_tid_size == 0))
  2622                  return -EINVAL;
  2623  
  2624          /*
  2625           * Verify that higher 32bits of exit_signal are unset and that
  2626           * it is a valid signal
  2627           */
  2628          if (unlikely((args.exit_signal & ~((u64)CSIGNAL)) ||
  2629                       !valid_signal(args.exit_signal)))
  2630                  return -EINVAL;
  2631  
  2632          if ((args.flags & CLONE_INTO_CGROUP) && args.cgroup < 0)
                                                        ^^^^^^^^^^^^^^^
This is a u64 so it can't be negative.  I'm not sure what was intended.

  2633                  return -EINVAL;
  2634  

regards,
dan carpenter



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux