dm vdo indexer: fix use after free
authorMatthew Sakai <msakai@redhat.com>
Thu, 29 Feb 2024 21:54:43 +0000 (16:54 -0500)
committerMike Snitzer <snitzer@kernel.org>
Mon, 4 Mar 2024 20:07:57 +0000 (15:07 -0500)
Fixes: b46d79bdb82a ("dm vdo: add deduplication index storage interface")
Reported-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm-vdo/indexer/index-layout.c

index 349b3022f1e17955d4a2717555fb4fa7c4654010..74fd44c20e5c36d597c077e8f6810815dde75758 100644 (file)
@@ -1561,10 +1561,11 @@ static int __must_check load_index_save(struct index_save_layout *isl,
 
 
        if (table->header.type != RH_TYPE_SAVE) {
+               uds_log_error_strerror(UDS_CORRUPT_DATA,
+                                      "unexpected index save %u header type %u",
+                                      instance, table->header.type);
                vdo_free(table);
-               return uds_log_error_strerror(UDS_CORRUPT_DATA,
-                                             "unexpected index save %u header type %u",
-                                             instance, table->header.type);
+               return UDS_CORRUPT_DATA;
        }
 
        result = read_index_save_data(reader, isl, table->header.payload);