diff options
author | Alexander Duyck <alexander.h.duyck@linux.intel.com> | 2018-10-11 01:38:41 +0200 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2018-10-12 17:38:53 +0200 |
commit | d86d4d63d88861107d3bfc84be7294552231ecd0 (patch) | |
tree | c443baecbd8c87b53d4427a86329cb417c782857 /drivers/nvdimm/label.c | |
parent | libnvdimm, dimm: Maximize label transfer size (diff) | |
download | linux-d86d4d63d88861107d3bfc84be7294552231ecd0.tar.xz linux-d86d4d63d88861107d3bfc84be7294552231ecd0.zip |
nvdimm: Sanity check labeloff
This patch adds validation for the labeloff field in the indexes.
Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/label.c')
-rw-r--r-- | drivers/nvdimm/label.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c index 1d28cd656536..1f5842509dbc 100644 --- a/drivers/nvdimm/label.c +++ b/drivers/nvdimm/label.c @@ -183,6 +183,13 @@ static int __nd_label_validate(struct nvdimm_drvdata *ndd) __le64_to_cpu(nsindex[i]->otheroff)); continue; } + if (__le64_to_cpu(nsindex[i]->labeloff) + != 2 * sizeof_namespace_index(ndd)) { + dev_dbg(dev, "nsindex%d labeloff: %#llx invalid\n", + i, (unsigned long long) + __le64_to_cpu(nsindex[i]->labeloff)); + continue; + } size = __le64_to_cpu(nsindex[i]->mysize); if (size > sizeof_namespace_index(ndd) |