All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix a sign bug causing invalid memory access in the ino_paths ioctl.
@ 2012-10-10 14:50 Gabriel de Perthuis
  0 siblings, 0 replies; only message in thread
From: Gabriel de Perthuis @ 2012-10-10 14:50 UTC (permalink / raw)
  To: linux-btrfs; +Cc: Gabriel de Perthuis

To see the problem, create many hardlinks to the same file (120 should do it),
then look up paths by inode with:

  ls -i
  btrfs inspect inode-resolve -v $ino /mnt/btrfs

I noticed the memory layout of the fspath->val data had some irregularities
(some unnecessary gaps that stop appearing about halfway),
so I'm not sure there aren't any bugs left in it.

---
 fs/btrfs/backref.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 868cf5b..29d05c6 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -1131,7 +1131,7 @@ char *btrfs_iref_to_path(struct btrfs_root *fs_root, struct btrfs_path *path,
 	int slot;
 	u64 next_inum;
 	int ret;
-	s64 bytes_left = size - 1;
+	s64 bytes_left = ((s64)size) - 1;
 	struct extent_buffer *eb = eb_in;
 	struct btrfs_key found_key;
 	int leave_spinning = path->leave_spinning;
-- 
1.7.12.117.gdc24c27


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-10-10 14:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-10 14:50 [PATCH] Fix a sign bug causing invalid memory access in the ino_paths ioctl Gabriel de Perthuis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.