Skip to content

Commit

Permalink
rbd: make snap_names_len a u64
Browse files Browse the repository at this point in the history
The snap_names_len field of an rbd_image_header structure is defined
with type size_t.  That field is used as both the source and target
of 64-bit byte-order swapping operations though, so it's best to
define it with type u64 instead.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
  • Loading branch information
Alex Elder committed Oct 1, 2012
1 parent 3593815 commit 0f1d3f9
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/block/rbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ struct rbd_image_header {
__u8 crypt_type;
__u8 comp_type;
struct ceph_snap_context *snapc;
size_t snap_names_len;
u64 snap_names_len;
u32 total_snaps;

char *snap_names;
Expand Down Expand Up @@ -510,6 +510,7 @@ static int rbd_header_from_disk(struct rbd_image_header *header,

if (snap_count) {
header->snap_names_len = le64_to_cpu(ondisk->snap_names_len);
BUG_ON(header->snap_names_len > (u64) SIZE_MAX);
header->snap_names = kmalloc(header->snap_names_len,
GFP_KERNEL);
if (!header->snap_names)
Expand Down

0 comments on commit 0f1d3f9

Please sign in to comment.