Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84f1e4b0 authored by Marcin Ciupak's avatar Marcin Ciupak Committed by Greg Kroah-Hartman
Browse files

staging: pi433: Fix validation of rf69_get_modulation value



Checking of modulation in rf69_set_modulation_shaping is done by
if-else and since else part covers OOK and UNDEF values it possible to
set modulation shaping for undefined modulation type.
To fix this validation should be done by switch clause and in case of
undefined modulation error returned.

Signed-off-by: default avatarMarcin Ciupak <marcin.s.ciupak@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1c12da35
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -128,7 +128,8 @@ int rf69_set_modulation_shaping(struct spi_device *spi,
		dev_dbg(&spi->dev, "set: mod shaping");
	#endif

	if (rf69_get_modulation(spi) == FSK) {
	switch (rf69_get_modulation(spi)) {
	case FSK:
		switch (mod_shaping) {
		case SHAPING_OFF: return rf69_read_mod_write(spi, REG_DATAMODUL, MASK_DATAMODUL_MODULATION_SHAPE, DATAMODUL_MODULATION_SHAPE_NONE);
		case SHAPING_1_0: return rf69_read_mod_write(spi, REG_DATAMODUL, MASK_DATAMODUL_MODULATION_SHAPE, DATAMODUL_MODULATION_SHAPE_1_0);
@@ -138,7 +139,7 @@ int rf69_set_modulation_shaping(struct spi_device *spi,
			dev_dbg(&spi->dev, "set: illegal input param");
			return -EINVAL;
		}
	} else {
	case OOK:
		switch (mod_shaping) {
		case SHAPING_OFF: return rf69_read_mod_write(spi, REG_DATAMODUL, MASK_DATAMODUL_MODULATION_SHAPE, DATAMODUL_MODULATION_SHAPE_NONE);
		case SHAPING_BR:  return rf69_read_mod_write(spi, REG_DATAMODUL, MASK_DATAMODUL_MODULATION_SHAPE, DATAMODUL_MODULATION_SHAPE_BR);
@@ -147,6 +148,9 @@ int rf69_set_modulation_shaping(struct spi_device *spi,
			dev_dbg(&spi->dev, "set: illegal input param");
			return -EINVAL;
		}
	default:
		dev_dbg(&spi->dev, "set: modulation undefined");
		return -EINVAL;
	}
}