]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: fix three bugs, two in ceph_vxattrcb_file_layout()
authorAlex Elder <elder@dreamhost.com>
Thu, 8 Mar 2012 22:50:09 +0000 (16:50 -0600)
committerAlex Elder <elder@dreamhost.com>
Thu, 22 Mar 2012 15:47:52 +0000 (10:47 -0500)
commitb0ae9d4b8cd7f2c7c1ec48758b6cce7fc841d01d
treef90c349a10cb7ca6c1c2da5d141324c636817d33
parentf824db0cc7a0f142151894453ae543b1e38b2a42
ceph: fix three bugs, two in ceph_vxattrcb_file_layout()

In ceph_vxattrcb_file_layout(), there is a check to determine
whether a preferred PG should be formatted into the output buffer.
That check assumes that a preferred PG number of 0 indicates "no
preference," but that is wrong.  No preference is indicated by a
negative (specifically, -1) PG number.

In addition, if that condition yields true, the preferred value
is formatted into a sized buffer, but the size consumed by the
earlier snprintf() call is not accounted for, opening up the
possibilty of a buffer overrun.

Finally, in ceph_vxattrcb_dir_rctime() where the nanoseconds part of
the time displayed did not include leading 0's, which led to
erroneous (sub-second portion of) time values being shown.

This fixes these three issues:
    http://tracker.newdream.net/issues/2155
    http://tracker.newdream.net/issues/2156
    http://tracker.newdream.net/issues/2157

Signed-off-by: Alex Elder <elder@dreamhost.com>
Reviewed-by: Sage Weil <sage@newdream.net>
fs/ceph/xattr.c