diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c index 7bd27c2fc872..7d65a8114816 100644 --- a/net/ceph/osdmap.c +++ b/net/ceph/osdmap.c @@ -385,6 +385,8 @@ static int decode_choose_args(void **p, void *end, struct crush_map *c) goto e_inval; arg = &arg_map->args[bucket_index]; + if (arg->ids || arg->weight_set) + goto e_inval; ret = decode_choose_arg(p, end, arg); if (ret) goto fail;