summaryrefslogtreecommitdiff
path: root/lib/mpi/mpi-inline.h
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2013-10-16 03:17:47 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-04 04:35:19 -0800
commitb04b881391b7779fe7af1110361d4a6487391000 (patch)
tree3ee216890e6f24fa2437d8052f11915f3a2c6649 /lib/mpi/mpi-inline.h
parenta4e22a835e37fd78fb3bd91efb29b26d0281f264 (diff)
dm snapshot: fix data corruption
commit e9c6a182649f4259db704ae15a91ac820e63b0ca upstream. This patch fixes a particular type of data corruption that has been encountered when loading a snapshot's metadata from disk. When we allocate a new chunk in persistent_prepare, we increment ps->next_free and we make sure that it doesn't point to a metadata area by further incrementing it if necessary. When we load metadata from disk on device activation, ps->next_free is positioned after the last used data chunk. However, if this last used data chunk is followed by a metadata area, ps->next_free is positioned erroneously to the metadata area. A newly-allocated chunk is placed at the same location as the metadata area, resulting in data or metadata corruption. This patch changes the code so that ps->next_free skips the metadata area when metadata are loaded in function read_exceptions. The patch also moves a piece of code from persistent_prepare_exception to a separate function skip_metadata to avoid code duplication. CVE-2013-4299 Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Cc: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib/mpi/mpi-inline.h')
0 files changed, 0 insertions, 0 deletions