]> sourceware.org Git - lvm2.git/commit
report: fix invalid memory read when reporting cache LV policy name
authorPeter Rajnoha <prajnoha@redhat.com>
Mon, 11 Jan 2016 11:51:08 +0000 (12:51 +0100)
committerPeter Rajnoha <prajnoha@redhat.com>
Mon, 11 Jan 2016 11:51:08 +0000 (12:51 +0100)
commita83d611a86e6da31f255d5d87adf14cb3d62a05a
tree8f2584bbfa235a5a4ef8b8c067819653addee9d8
parent0dac4f09b4fcf752b039a80707653d3b655fc020
report: fix invalid memory read when reporting cache LV policy name

Fix regression caused by commit c2d4330f27277717bc3b684b702189079b257b77
which removed the dm_pool_strdup for the cache policy name in
_cache_policy_disp report function.

This regression was hit with buffered reporting only (which is
used by default). The reason is that for buffered reporting, we're
iterating over LVs in VG (process_each_lv) while gathering
all the information that is needed for the report. In this case,
the LV's cache policy name has not been duped, but only the pointer
to the original VG buffer was stored. When the LV iteration finished,
the VG buffer was freed and any report to output called later
(dm_report_output call) accessed already freed VG data.

This didn't appear if unbuffered reporting was used (--unbuffered)
because in this case, the data were reported to output as
soon as they were processed, hence it was reported to output
before the VG data was freed.
WHATS_NEW
lib/report/report.c
This page took 0.032554 seconds and 5 git commands to generate.