diff --git a/[refs] b/[refs] index 719086aa5a7e..f53d25116174 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2cc412b513f70ce914a3554a34917f7585a16f04 +refs/heads/master: b2b79ffa40d7ae40115631660ff8b6da3cf989b6 diff --git a/trunk/drivers/iio/inkern.c b/trunk/drivers/iio/inkern.c index 028c657f8da3..d539e1e297ba 100644 --- a/trunk/drivers/iio/inkern.c +++ b/trunk/drivers/iio/inkern.c @@ -136,12 +136,21 @@ struct iio_channel *iio_channel_get(const char *name, const char *channel_name) channel->indio_dev = c->indio_dev; - if (c->map->adc_channel_label) + if (c->map->adc_channel_label) { channel->channel = iio_chan_spec_from_name(channel->indio_dev, c->map->adc_channel_label); + if (channel->channel == NULL) + goto error_no_chan; + } + return channel; + +error_no_chan: + iio_device_put(c->indio_dev); + kfree(channel); + return ERR_PTR(-EINVAL); } EXPORT_SYMBOL_GPL(iio_channel_get);