Commit 5cc55126 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Martin K. Petersen
Browse files

scsi: fcoe: catch invalid values for the 'enabled' attribute



The 'enabled' sysfs attribute only accepts the values '0' and '1',
so we should error out any other values.

Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
Acked-by: default avatarJohannes Thumshirn <jth@kernel.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent c216e876
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -335,16 +335,24 @@ static ssize_t store_ctlr_enabled(struct device *dev,
				  const char *buf, size_t count)
{
	struct fcoe_ctlr_device *ctlr = dev_to_ctlr(dev);
	bool enabled;
	int rc;

	if (*buf == '1')
		enabled = true;
	else if (*buf == '0')
		enabled = false;
	else
		return -EINVAL;

	switch (ctlr->enabled) {
	case FCOE_CTLR_ENABLED:
		if (*buf == '1')
		if (enabled)
			return count;
		ctlr->enabled = FCOE_CTLR_DISABLED;
		break;
	case FCOE_CTLR_DISABLED:
		if (*buf == '0')
		if (!enabled)
			return count;
		ctlr->enabled = FCOE_CTLR_ENABLED;
		break;