All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent
@ 2018-07-05  7:45 Qu Wenruo
  2018-07-05  7:45 ` [PATCH 2/3] btrfs-progs: tests/fuzz: Add fuzzed test image for btrfs check BUG_ON Qu Wenruo
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Qu Wenruo @ 2018-07-05  7:45 UTC (permalink / raw)
  To: linux-btrfs

With crafted image, expected root item can refer to certain extent, and
original mode uses BUG_ON() to handle such case.

Fix it by gracefully return error.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=200403
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 check/main.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/check/main.c b/check/main.c
index 8db300abb825..6f1182106071 100644
--- a/check/main.c
+++ b/check/main.c
@@ -3724,7 +3724,12 @@ static int check_owner_ref(struct btrfs_root *root,
 		if (btrfs_header_owner(buf) == back->root)
 			return 0;
 	}
-	BUG_ON(rec->is_root);
+	/*
+	 * Some unexpected root item referring to this one, return 1 to
+	 * indicate owner not found
+	 */
+	if (rec->is_root)
+		return 1;
 
 	/* try to find the block by search corresponding fs tree */
 	key.objectid = btrfs_header_owner(buf);
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] btrfs-progs: tests/fuzz: Add fuzzed test image for btrfs check BUG_ON
  2018-07-05  7:45 [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent Qu Wenruo
@ 2018-07-05  7:45 ` Qu Wenruo
  2018-07-05  7:45 ` [PATCH 3/3] btrfs-progs: test/fuzz: Add image for BUG_ON() when opening the fs by btrfs check Qu Wenruo
  2018-07-16 16:15 ` [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent David Sterba
  2 siblings, 0 replies; 4+ messages in thread
From: Qu Wenruo @ 2018-07-05  7:45 UTC (permalink / raw)
  To: linux-btrfs

This fuzzed image will not only cause kernel BUG_ON(), but also btrfs
check BUG_ON() for original mode.

Checking filesystem on /home/adam/btrfs/crafted_images/runtime/0.img
UUID: 3381d111-94a3-4ac7-8f39-611bbbdab7e6
checking extents
check/main.c:3677: check_owner_ref: BUG_ON `rec->is_root` triggered, value 1
btrfs(+0x572c2)[0x562d65da72c2]
btrfs(+0x6098d)[0x562d65db098d]
btrfs(+0x60bb6)[0x562d65db0bb6]
btrfs(+0x6179b)[0x562d65db179b]
btrfs(cmd_check+0x1199)[0x562d65db5589]
btrfs(main+0x88)[0x562d65d62768]
/usr/lib/libc.so.6(__libc_start_main+0xeb)[0x7f4fcbb1b06b]
btrfs(_start+0x2a)[0x562d65d6288a]

Link: https://bugzilla.kernel.org/show_bug.cgi?id=200403
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 tests/fuzz-tests/images/bko-200403.raw.txt |  93 +++++++++++++++++++++
 tests/fuzz-tests/images/bko-200403.raw.xz  | Bin 0 -> 23252 bytes
 2 files changed, 93 insertions(+)
 create mode 100644 tests/fuzz-tests/images/bko-200403.raw.txt
 create mode 100644 tests/fuzz-tests/images/bko-200403.raw.xz

diff --git a/tests/fuzz-tests/images/bko-200403.raw.txt b/tests/fuzz-tests/images/bko-200403.raw.txt
new file mode 100644
index 000000000000..aae8ea4810bb
--- /dev/null
+++ b/tests/fuzz-tests/images/bko-200403.raw.txt
@@ -0,0 +1,93 @@
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=200403
+Wen Xu 2018-07-04 17:21:58 UTC
+
+Created attachment 277167 [details]
+The (compressed) crafted image which causes crash
+
+- Reproduce
+# mkdir mnt
+# mount -t btrfs 0.img mnt
+# gcc -o poc poc.c
+# ./poc ./mnt
+# umount mnt
+
+- Kernel message
+[  230.611533] BTRFS: device fsid 3381d111-94a3-4ac7-8f39-611bbbdab7e6 devid 1 transid 8 /dev/loop0
+[  230.632922] BTRFS info (device loop0): disk space caching is enabled
+[  230.632935] BTRFS info (device loop0): has skinny extents
+[  230.647496] BTRFS info (device loop0): creating UUID tree
+[  237.692643] ------------[ cut here ]------------
+[  237.692654] kernel BUG at fs/btrfs/volumes.c:1625!
+[  237.693822] invalid opcode: 0000 [#1] SMP KASAN PTI
+[  237.694867] CPU: 1 PID: 1387 Comm: umount Not tainted 4.18.0-rc1+ #8
+[  237.696177] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
+[  237.698177] RIP: 0010:btrfs_remove_chunk+0x37a/0xd60
+[  237.699209] Code: e0 48 39 85 28 ff ff ff 77 20 0f b6 85 27 ff ff ff 4d 89 6f 80 4c 89 f7 4d 89 67 89 41 88 47 88 e8 0b 01 f7 ff e9 f5 fe ff ff <0f> 0b 0f 85 5c 08 00 00 4d 8d 66 40 4c 89 f7 e8 42 f9 b6 ff 4c 89
+[  237.703034] RSP: 0018:ffff8801f0b0fad8 EFLAGS: 00010206
+[  237.704122] RAX: 0000000008000000 RBX: ffff8801ef4d7c38 RCX: 0000000000000000
+[  237.705572] RDX: ffffed003e161f30 RSI: 0000000000000e70 RDI: ffff8801f2a6ae70
+[  237.707035] RBP: ffff8801f0b0fc38 R08: ffff8801f0b0f9e0 R09: ffff8801f0b0fa20
+[  237.708485] R10: 0000000000000003 R11: ffffed003e161f7c R12: 0000000007400000
+[  237.709929] R13: 0000000000000001 R14: ffff8801f2bf0a50 R15: ffff8801f0b0fc10
+[  237.711391] FS:  00007f691b770840(0000) GS:ffff8801f6f00000(0000) knlGS:0000000000000000
+[  237.713034] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[  237.714206] CR2: 0000000000cb0348 CR3: 00000001f26f8000 CR4: 00000000000006e0
+[  237.719741] Call Trace:
+[  237.720274]  ? btrfs_grow_device+0x240/0x240
+[  237.721193]  ? kasan_check_read+0x11/0x20
+[  237.722080]  ? mutex_lock+0x99/0xf0
+[  237.722854]  btrfs_delete_unused_bgs+0x4b6/0x5c0
+[  237.723836]  close_ctree+0x40a/0x460
+[  237.724586]  ? transaction_kthread+0x250/0x250
+[  237.725523]  ? dispose_list+0xa0/0xa0
+[  237.726303]  btrfs_put_super+0x25/0x30
+[  237.727110]  generic_shutdown_super+0xb9/0x1c0
+[  237.728032]  kill_anon_super+0x24/0x40
+[  237.728814]  btrfs_kill_super+0x31/0x220
+[  237.729630]  deactivate_locked_super+0x6f/0xa0
+[  237.730548]  deactivate_super+0x5e/0x80
+[  237.731352]  cleanup_mnt+0x61/0xa0
+[  237.732060]  __cleanup_mnt+0x12/0x20
+[  237.732835]  task_work_run+0xc8/0xf0
+[  237.733605]  exit_to_usermode_loop+0x125/0x130
+[  237.734530]  do_syscall_64+0x138/0x170
+[  237.735331]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
+[  237.736676] RIP: 0033:0x7f691b050487
+[  237.737457] Code: 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 31 f6 e9 09 00 00 00 66 0f 1f 84 00 00 00 00 00 b8 a6 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e1 c9 2b 00 f7 d8 64 89 01 48
+[  237.741327] RSP: 002b:00007ffdf3a06d98 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
+[  237.742889] RAX: 0000000000000000 RBX: 0000000000ca7030 RCX: 00007f691b050487
+[  237.744351] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000cae1e0
+[  237.745814] RBP: 0000000000cae1e0 R08: 0000000000000000 R09: 0000000000000015
+[  237.747289] R10: 00000000000006b2 R11: 0000000000000246 R12: 00007f691b55983c
+[  237.748750] R13: 0000000000000000 R14: 0000000000ca7210 R15: 00007ffdf3a07020
+[  237.750224] Modules linked in: snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer snd mac_hid i2c_piix4 soundcore ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 multipath linear 8139too qxl drm_kms_helper crct10dif_pclmul syscopyarea sysfillrect sysimgblt fb_sys_fops ttm crc32_pclmul aesni_intel drm aes_x86_64 crypto_simd cryptd glue_helper 8139cp mii pata_acpi floppy
+[  237.760666] ---[ end trace 2e85051acb5f6dc1 ]---
+[  237.761718] RIP: 0010:btrfs_remove_chunk+0x37a/0xd60
+[  237.762827] Code: e0 48 39 85 28 ff ff ff 77 20 0f b6 85 27 ff ff ff 4d 89 6f 80 4c 89 f7 4d 89 67 89 41 88 47 88 e8 0b 01 f7 ff e9 f5 fe ff ff <0f> 0b 0f 85 5c 08 00 00 4d 8d 66 40 4c 89 f7 e8 42 f9 b6 ff 4c 89
+[  237.766977] RSP: 0018:ffff8801f0b0fad8 EFLAGS: 00010206
+[  237.768157] RAX: 0000000008000000 RBX: ffff8801ef4d7c38 RCX: 0000000000000000
+[  237.769672] RDX: ffffed003e161f30 RSI: 0000000000000e70 RDI: ffff8801f2a6ae70
+[  237.771147] RBP: ffff8801f0b0fc38 R08: ffff8801f0b0f9e0 R09: ffff8801f0b0fa20
+[  237.772650] R10: 0000000000000003 R11: ffffed003e161f7c R12: 0000000007400000
+[  237.774119] R13: 0000000000000001 R14: ffff8801f2bf0a50 R15: ffff8801f0b0fc10
+[  237.775598] FS:  00007f691b770840(0000) GS:ffff8801f6f00000(0000) knlGS:0000000000000000
+[  237.777297] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[  237.778496] CR2: 0000000000cb0348 CR3: 00000001f26f8000 CR4: 00000000000006e0
+
+
+===== Extra info for btrfs-progs ======
+It has one corrupted root item, (41 ROOT_ITEM 0) referring tree block
+29364224, which is also UUID tree root.
+It would cause original mode to hit BUG_ON().
+Checking filesystem on /home/adam/btrfs/crafted_images/runtime/0.img
+UUID: 3381d111-94a3-4ac7-8f39-611bbbdab7e6
+checking extents
+check/main.c:3677: check_owner_ref: BUG_ON `rec->is_root` triggered, value 1
+btrfs(+0x572c2)[0x562d65da72c2]
+btrfs(+0x6098d)[0x562d65db098d]
+btrfs(+0x60bb6)[0x562d65db0bb6]
+btrfs(+0x6179b)[0x562d65db179b]
+btrfs(cmd_check+0x1199)[0x562d65db5589]
+btrfs(main+0x88)[0x562d65d62768]
+/usr/lib/libc.so.6(__libc_start_main+0xeb)[0x7f4fcbb1b06b]
+btrfs(_start+0x2a)[0x562d65d6288a]
diff --git a/tests/fuzz-tests/images/bko-200403.raw.xz b/tests/fuzz-tests/images/bko-200403.raw.xz
new file mode 100644
index 0000000000000000000000000000000000000000..569594570e6c26220e8cc1d2d6c71032cb4ff74b
GIT binary patch
literal 23252
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

literal 0
HcmV?d00001

-- 
2.18.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] btrfs-progs: test/fuzz: Add image for BUG_ON() when opening the fs by btrfs check
  2018-07-05  7:45 [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent Qu Wenruo
  2018-07-05  7:45 ` [PATCH 2/3] btrfs-progs: tests/fuzz: Add fuzzed test image for btrfs check BUG_ON Qu Wenruo
@ 2018-07-05  7:45 ` Qu Wenruo
  2018-07-16 16:15 ` [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent David Sterba
  2 siblings, 0 replies; 4+ messages in thread
From: Qu Wenruo @ 2018-07-05  7:45 UTC (permalink / raw)
  To: linux-btrfs

Link: https://bugzilla.kernel.org/show_bug.cgi?id=199839
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 tests/fuzz-tests/images/bko-199839.raw.txt | 198 +++++++++++++++++++++
 tests/fuzz-tests/images/bko-199839.raw.xz  | Bin 0 -> 24400 bytes
 2 files changed, 198 insertions(+)
 create mode 100644 tests/fuzz-tests/images/bko-199839.raw.txt
 create mode 100644 tests/fuzz-tests/images/bko-199839.raw.xz

diff --git a/tests/fuzz-tests/images/bko-199839.raw.txt b/tests/fuzz-tests/images/bko-199839.raw.txt
new file mode 100644
index 000000000000..3e4b273d9ec7
--- /dev/null
+++ b/tests/fuzz-tests/images/bko-199839.raw.txt
@@ -0,0 +1,198 @@
+URL: https://bugzilla.kernel.org/show_bug.cgi?id=199839
+Wen Xu 2018-05-26 04:18:45 UTC
+
+Created attachment 276197 [details]
+The (compressed) crafted image which causes crash
+
+- Overview
+use-after-free in try_merge_free_space() when mounting a crafted btrfs image
+
+- Reproduce (4.17 KASAN build)
+# mkdir mnt
+# mount -t btrfs 8.img mnt
+
+- Kernel Message
+[  449.751861] BTRFS: device fsid 12b338de-a2e9-40fa-a4b0-90e53b7c5773 devid 1 transid 8 /dev/loop0
+[  449.757216] BTRFS info (device loop0): disk space caching is enabled
+[  449.757221] BTRFS info (device loop0): has skinny extents
+[  449.785096] BTRFS error (device loop0): bad tree block start 0 29396992
+[  449.788629] BTRFS info (device loop0): read error corrected: ino 0 off 29396992 (dev /dev/loop0 sector 73800)
+[  449.792965] BTRFS error (device loop0): bad fsid on block 29409280
+[  449.795193] BTRFS info (device loop0): read error corrected: ino 0 off 29409280 (dev /dev/loop0 sector 73824)
+[  449.795401] BTRFS info (device loop0): creating UUID tree
+[  449.883426] ==================================================================
+[  449.886228] BUG: KASAN: use-after-free in try_merge_free_space+0xc0/0x2e0
+[  449.888344] Read of size 8 at addr ffff8801ed10f030 by task mount/1291
+
+[  449.889947] CPU: 1 PID: 1291 Comm: mount Not tainted 4.17.0-rc5+ #6
+[  449.889951] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
+[  449.889953] Call Trace:
+[  449.889976]  dump_stack+0x7b/0xb5
+[  449.890274]  print_address_description+0x70/0x290
+[  449.890286]  kasan_report+0x291/0x390
+[  449.890296]  ? try_merge_free_space+0xc0/0x2e0
+[  449.890303]  __asan_load8+0x54/0x90
+[  449.890310]  try_merge_free_space+0xc0/0x2e0
+[  449.890318]  __btrfs_add_free_space+0x96/0x5e0
+[  449.890324]  ? kasan_check_write+0x14/0x20
+[  449.890331]  ? btrfs_get_block_group+0x1e/0x30
+[  449.890337]  ? block_group_cache_tree_search+0xef/0x150
+[  449.890343]  unpin_extent_range+0x376/0x670
+[  449.890350]  ? __exclude_logged_extent+0x160/0x160
+[  449.890358]  btrfs_finish_extent_commit+0x15b/0x490
+[  449.890371]  ? __find_get_block+0x106/0x400
+[  449.890378]  ? btrfs_prepare_extent_commit+0x1a0/0x1a0
+[  449.890384]  ? write_all_supers+0x714/0x1420
+[  449.890394]  btrfs_commit_transaction+0xaf4/0xfa0
+[  449.890402]  ? btrfs_apply_pending_changes+0xa0/0xa0
+[  449.890407]  ? start_transaction+0x153/0x640
+[  449.890414]  btrfs_create_uuid_tree+0x6a/0x170
+[  449.890419]  open_ctree+0x3b26/0x3ce9
+[  449.890429]  ? close_ctree+0x4a0/0x4a0
+[  449.890441]  ? bdi_register_va+0x44/0x50
+[  449.890451]  ? super_setup_bdi_name+0x11b/0x1a0
+[  449.890457]  ? kill_block_super+0x80/0x80
+[  449.890468]  ? snprintf+0x96/0xd0
+[  449.890479]  btrfs_mount_root+0xae6/0xc60
+[  449.890485]  ? btrfs_mount_root+0xae6/0xc60
+[  449.890491]  ? pcpu_block_update_hint_alloc+0x1f5/0x2a0
+[  449.890498]  ? btrfs_decode_error+0x40/0x40
+[  449.890510]  ? find_next_bit+0x57/0x90
+[  449.890517]  ? cpumask_next+0x1a/0x20
+[  449.890522]  ? pcpu_alloc+0x449/0x8c0
+[  449.890528]  ? pcpu_free_area+0x410/0x410
+[  449.890534]  ? memcg_kmem_put_cache+0x1b/0xa0
+[  449.890540]  ? memcpy+0x45/0x50
+[  449.890547]  mount_fs+0x60/0x1a0
+[  449.890553]  ? btrfs_decode_error+0x40/0x40
+[  449.890558]  ? mount_fs+0x60/0x1a0
+[  449.890565]  ? alloc_vfsmnt+0x309/0x360
+[  449.890570]  vfs_kern_mount+0x6b/0x1a0
+[  449.890576]  ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
+[  449.890583]  btrfs_mount+0x209/0xb71
+[  449.890589]  ? pcpu_block_update_hint_alloc+0x1f5/0x2a0
+[  449.890595]  ? btrfs_remount+0x8e0/0x8e0
+[  449.890601]  ? find_next_zero_bit+0x2c/0xa0
+[  449.890608]  ? find_next_bit+0x57/0x90
+[  449.890613]  ? cpumask_next+0x1a/0x20
+[  449.890617]  ? pcpu_alloc+0x449/0x8c0
+[  449.890624]  ? pcpu_free_area+0x410/0x410
+[  449.890629]  ? memcg_kmem_put_cache+0x1b/0xa0
+[  449.890634]  ? memcpy+0x45/0x50
+[  449.890641]  mount_fs+0x60/0x1a0
+[  449.890646]  ? btrfs_remount+0x8e0/0x8e0
+[  449.890652]  ? mount_fs+0x60/0x1a0
+[  449.890656]  ? alloc_vfsmnt+0x309/0x360
+[  449.890662]  vfs_kern_mount+0x6b/0x1a0
+[  449.890668]  do_mount+0x34a/0x18a0
+[  449.890673]  ? lockref_put_or_lock+0xcf/0x160
+[  449.890680]  ? copy_mount_string+0x20/0x20
+[  449.890685]  ? memcg_kmem_put_cache+0x1b/0xa0
+[  449.890691]  ? kasan_check_write+0x14/0x20
+[  449.890696]  ? _copy_from_user+0x6a/0x90
+[  449.890702]  ? memdup_user+0x42/0x60
+[  449.890708]  ksys_mount+0x83/0xd0
+[  449.890714]  __x64_sys_mount+0x67/0x80
+[  449.890723]  do_syscall_64+0x78/0x170
+[  449.890729]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
+[  449.890734] RIP: 0033:0x7fc36964fb9a
+[  449.890737] RSP: 002b:00007ffd268892f8 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5
+[  449.890744] RAX: ffffffffffffffda RBX: 0000000000e7f030 RCX: 00007fc36964fb9a
+[  449.890747] RDX: 0000000000e7f210 RSI: 0000000000e80f30 RDI: 0000000000e87ec0
+[  449.890750] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000014
+[  449.890753] R10: 00000000c0ed0000 R11: 0000000000000202 R12: 0000000000e87ec0
+[  449.890756] R13: 0000000000e7f210 R14: 0000000000000000 R15: 0000000000000003
+
+[  449.891109] Allocated by task 1291:
+[  449.891832]  save_stack+0x46/0xd0
+[  449.891838]  kasan_kmalloc+0xad/0xe0
+[  449.891843]  kasan_slab_alloc+0x11/0x20
+[  449.891848]  kmem_cache_alloc+0xd1/0x1e0
+[  449.891854]  __btrfs_add_free_space+0x43/0x5e0
+[  449.891859]  add_new_free_space+0x22b/0x240
+[  449.891864]  btrfs_read_block_groups+0xae3/0xc60
+[  449.891868]  open_ctree+0x2cfc/0x3ce9
+[  449.891873]  btrfs_mount_root+0xae6/0xc60
+[  449.891878]  mount_fs+0x60/0x1a0
+[  449.891883]  vfs_kern_mount+0x6b/0x1a0
+[  449.891888]  btrfs_mount+0x209/0xb71
+[  449.891893]  mount_fs+0x60/0x1a0
+[  449.891897]  vfs_kern_mount+0x6b/0x1a0
+[  449.891902]  do_mount+0x34a/0x18a0
+[  449.891906]  ksys_mount+0x83/0xd0
+[  449.891911]  __x64_sys_mount+0x67/0x80
+[  449.891916]  do_syscall_64+0x78/0x170
+[  449.891921]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
+
+[  449.892235] Freed by task 1291:
+[  449.892866]  save_stack+0x46/0xd0
+[  449.892872]  __kasan_slab_free+0x13c/0x1a0
+[  449.892877]  kasan_slab_free+0xe/0x10
+[  449.892882]  kmem_cache_free+0x89/0x1e0
+[  449.892888]  try_merge_free_space+0x274/0x2e0
+[  449.892894]  __btrfs_add_free_space+0x96/0x5e0
+[  449.892898]  unpin_extent_range+0x376/0x670
+[  449.892904]  btrfs_finish_extent_commit+0x15b/0x490
+[  449.892909]  btrfs_commit_transaction+0xaf4/0xfa0
+[  449.892913]  btrfs_create_uuid_tree+0x6a/0x170
+[  449.892917]  open_ctree+0x3b26/0x3ce9
+[  449.892922]  btrfs_mount_root+0xae6/0xc60
+[  449.892927]  mount_fs+0x60/0x1a0
+[  449.892932]  vfs_kern_mount+0x6b/0x1a0
+[  449.892937]  btrfs_mount+0x209/0xb71
+[  449.892942]  mount_fs+0x60/0x1a0
+[  449.892946]  vfs_kern_mount+0x6b/0x1a0
+[  449.892951]  do_mount+0x34a/0x18a0
+[  449.892955]  ksys_mount+0x83/0xd0
+[  449.892960]  __x64_sys_mount+0x67/0x80
+[  449.892965]  do_syscall_64+0x78/0x170
+[  449.892970]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
+
+[  449.893286] The buggy address belongs to the object at ffff8801ed10f000
+                which belongs to the cache btrfs_free_space of size 72
+[  449.895793] The buggy address is located 48 bytes inside of
+                72-byte region [ffff8801ed10f000, ffff8801ed10f048)
+[  449.898035] The buggy address belongs to the page:
+[  449.898979] page:ffffea0007b443c0 count:1 mapcount:0 mapping:0000000000000000 index:0x0
+[  449.900562] flags: 0x2ffff0000000100(slab)
+[  449.901379] raw: 02ffff0000000100 0000000000000000 0000000000000000 0000000180270027
+[  449.902881] raw: dead000000000100 dead000000000200 ffff8801e0a676c0 0000000000000000
+[  449.904396] page dumped because: kasan: bad access detected
+
+[  449.905800] Memory state around the buggy address:
+[  449.906748]  ffff8801ed10ef00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+[  449.908165]  ffff8801ed10ef80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+[  449.909577] >ffff8801ed10f000: fb fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc
+[  449.910969]                                      ^
+[  449.911933]  ffff8801ed10f080: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[  449.913328]  ffff8801ed10f100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[  449.914720] ==================================================================
+[  449.916119] Disabling lock debugging due to kernel taint
+
+No kernel crash on plain kernel.
+
+- Reason
+https://elixir.bootlin.com/linux/v4.17-rc5/source/fs/btrfs/free-space-cache.c#L2161
+
+	if (left_info && !left_info->bitmap &&
+	    left_info->offset + left_info->bytes == offset) {
+		if (update_stat)
+			unlink_free_space(ctl, left_info);
+		else
+			__unlink_free_space(ctl, left_info);
+		info->offset = left_info->offset;
+		info->bytes += left_info->bytes;
+		kmem_cache_free(btrfs_free_space_cachep, left_info);
+		merged = true;
+	}
+
+	return merged;
+
+Regarding KASAN report, left_info is already freed but referenced (->bitmap). It is in fact freed just several lines after, namely kmem_cache_free(btrfs_free_space_cachep, left_info);
+
+Found by Wen Xu and Po-Ning Tseng from SSLab, Gatech.
+
+===== Extra info for btrfs-progs =====
+This image could cause btrfs-progs to BUG_ON() when opening the image.
+Fixed by "btrfs-progs: Don't BUG_ON() if we failed to load one device or one
+chunk".
diff --git a/tests/fuzz-tests/images/bko-199839.raw.xz b/tests/fuzz-tests/images/bko-199839.raw.xz
new file mode 100644
index 0000000000000000000000000000000000000000..c06d9540f708824e763b0e2cb0e66266326e31a6
GIT binary patch
literal 24400
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
Wul#J2m>+~B;yjOj`wT$RH~1H8_y~aj

literal 0
HcmV?d00001

-- 
2.18.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent
  2018-07-05  7:45 [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent Qu Wenruo
  2018-07-05  7:45 ` [PATCH 2/3] btrfs-progs: tests/fuzz: Add fuzzed test image for btrfs check BUG_ON Qu Wenruo
  2018-07-05  7:45 ` [PATCH 3/3] btrfs-progs: test/fuzz: Add image for BUG_ON() when opening the fs by btrfs check Qu Wenruo
@ 2018-07-16 16:15 ` David Sterba
  2 siblings, 0 replies; 4+ messages in thread
From: David Sterba @ 2018-07-16 16:15 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

On Thu, Jul 05, 2018 at 03:45:56PM +0800, Qu Wenruo wrote:
> With crafted image, expected root item can refer to certain extent, and
> original mode uses BUG_ON() to handle such case.
> 
> Fix it by gracefully return error.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=200403
> Signed-off-by: Qu Wenruo <wqu@suse.com>

Please send cover lettter for patchsets with more than one patch.
Patches 1-3 applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-16 16:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-05  7:45 [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent Qu Wenruo
2018-07-05  7:45 ` [PATCH 2/3] btrfs-progs: tests/fuzz: Add fuzzed test image for btrfs check BUG_ON Qu Wenruo
2018-07-05  7:45 ` [PATCH 3/3] btrfs-progs: test/fuzz: Add image for BUG_ON() when opening the fs by btrfs check Qu Wenruo
2018-07-16 16:15 ` [PATCH 1/3] btrfs-progs: check: orig: Don't panic out when unexpected root item is referring to one extent David Sterba

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.