if (hdr.command < 0 || hdr.command >= ARRAY_SIZE(uverbs_cmd_table)) 
if (hdr.command < 0				|| hdr.command >= ARRAY_SIZE(uverbs_cmd_table) || !uverbs_cmd_table[hdr.command]) 
static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf,			     size_t count, loff_t *pos){	struct ib_uverbs_file *file = filp->private_data;	struct ib_uverbs_cmd_hdr hdr;	if (count < sizeof hdr)		return -EINVAL;	if (copy_from_user(&hdr, buf, sizeof hdr))		return -EFAULT;	if (hdr.in_words * 4 != count)		return -EINVAL;	if (hdr.command < 0 || hdr.command >= ARRAY_SIZE(uverbs_cmd_table))		return -EINVAL;	if (!file->ucontext                               &&	    hdr.command != IB_USER_VERBS_CMD_QUERY_PARAMS &&	    hdr.command != IB_USER_VERBS_CMD_GET_CONTEXT)		return -EINVAL;	return uverbs_cmd_table[hdr.command](file, buf + sizeof hdr,					     hdr.in_words * 4, hdr.out_words * 4);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/63c47c286d062d93e0501d60797274c84a587e97/uverbs_main.c/buggy/drivers/infiniband/core/uverbs_main.c