f2fs: fix to avoid NULL pointer dereference
Unable to handle kernel NULL pointer dereference at virtual address 00000000 PC is at f2fs_free_dic+0x60/0x2c8 LR is at f2fs_decompress_pages+0x3c4/0x3e8 f2fs_free_dic+0x60/0x2c8 f2fs_decompress_pages+0x3c4/0x3e8 __read_end_io+0x78/0x19c f2fs_post_read_work+0x6c/0x94 process_one_work+0x210/0x48c worker_thread+0x2e8/0x44c kthread+0x110/0x120 ret_from_fork+0x10/0x18 In f2fs_free_dic(), we can not use f2fs_put_page(,1) to release dic->tpages[i], as the page's mapping is NULL. Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
		
							parent
							
								
									7fa6d59816
								
							
						
					
					
						commit
						61fbae2b2b
					
				| @ -1137,7 +1137,8 @@ void f2fs_free_dic(struct decompress_io_ctx *dic) | |||||||
| 		for (i = 0; i < dic->cluster_size; i++) { | 		for (i = 0; i < dic->cluster_size; i++) { | ||||||
| 			if (dic->rpages[i]) | 			if (dic->rpages[i]) | ||||||
| 				continue; | 				continue; | ||||||
| 			f2fs_put_page(dic->tpages[i], 1); | 			unlock_page(dic->tpages[i]); | ||||||
|  | 			put_page(dic->tpages[i]); | ||||||
| 		} | 		} | ||||||
| 		kfree(dic->tpages); | 		kfree(dic->tpages); | ||||||
| 	} | 	} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user