diff --git a/drivers/mtd/mtd_config.c b/drivers/mtd/mtd_config.c index d089758690..fe20a0c323 100644 --- a/drivers/mtd/mtd_config.c +++ b/drivers/mtd/mtd_config.c @@ -1423,14 +1423,17 @@ static int mtdconfig_getconfig(FAR struct mtdconfig_struct_s *dev, /* Perform the read */ - ret = mtdconfig_readbytes(dev, offset + sizeof(hdr), pdata->configdata, - bytes_to_read); - if (ret != OK) + if (pdata->configdata && bytes_to_read) { - /* Error reading the data */ + ret = mtdconfig_readbytes(dev, offset + sizeof(hdr), + pdata->configdata, bytes_to_read); + if (ret != OK) + { + /* Error reading the data */ - ret = -EIO; - goto errout; + ret = -EIO; + goto errout; + } } /* Set return data length to match the config item length */