Bill O'Donnell
b20fe4730e
xfs: correct null checks and error processing in xfs_initialize_perag
...
If pag cannot be allocated, the current error exit path will trip
a null pointer deference error when calling xfs_buf_hash_destroy
with a null pag. Fix this by adding a new error exit labels and
jumping to those accordingly, avoiding the hash destroy and
unnecessary kmem_free on pag.
Up to three things need to be properly unwound:
1) pag memory allocation
2) xfs_buf_hash_init
3) radix_tree_insert
For any given iteration through the loop, any of the above which
succeed must be unwound for /this/ pag, and then all prior
initialized pags must be unwound.
Addresses-Coverity-Id: 1397628 ("Dereference after null check")
Reported-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Bill O'Donnell <billodo@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2017-02-09 10:50:25 -08:00
..
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2016-12-22 11:25:24 +00:00
2016-12-24 11:46:01 -08:00
2017-01-27 12:41:46 -08:00
2017-01-18 17:58:45 +01:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-31 00:47:05 -05:00
2016-12-25 17:21:23 +01:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-10 14:25:19 -05:00
2017-01-30 16:32:25 -08:00
2017-01-30 16:32:25 -08:00
2017-01-12 07:58:32 -07:00
2017-01-13 17:20:47 +01:00
2016-12-25 17:21:22 +01:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-13 10:19:16 -08:00
2016-12-24 11:46:01 -08:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2016-11-18 10:59:15 -05:00
2016-12-09 16:45:04 +01:00
2016-12-24 11:46:01 -08:00
2017-01-26 15:50:41 -05:00
2016-11-18 10:59:15 -05:00
2017-01-12 15:55:51 -05:00
2016-12-17 19:16:12 -08:00
2017-01-05 23:06:06 -08:00
2016-12-24 11:46:01 -08:00
2017-01-10 18:31:54 -08:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2017-01-18 15:19:54 +01:00
2017-01-24 16:26:14 -08:00
2016-12-13 09:16:11 -08:00
2016-12-19 08:23:53 -08:00
2016-12-24 11:46:01 -08:00
2016-12-17 19:16:12 -08:00
2017-01-24 16:26:14 -08:00
2016-12-17 19:16:12 -08:00
2016-12-09 16:45:04 +01:00
2017-01-17 14:35:58 +01:00
2016-11-01 09:43:26 -06:00
2016-12-24 11:46:01 -08:00
2017-02-09 10:50:25 -08:00
2017-01-14 19:31:40 -05:00
2016-12-24 11:46:01 -08:00
2016-12-09 11:57:43 +01:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2017-01-14 19:32:40 -05:00
2017-01-24 07:55:53 -07:00
2017-01-02 09:35:14 -07:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2017-01-14 19:32:40 -05:00
2017-01-30 16:32:25 -08:00
2017-01-10 13:34:43 +13:00
2016-12-24 11:46:01 -08:00
2017-01-10 13:29:54 -07:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-05 19:01:16 -05:00
2016-12-24 11:46:01 -08:00
2016-12-12 18:55:08 -08:00
2017-01-30 16:32:25 -08:00
2016-12-16 11:02:54 +01:00
2017-01-30 16:32:25 -08:00
2017-01-24 16:26:14 -08:00
2016-10-24 08:12:35 -02:00
2017-01-10 13:34:55 +13:00
2016-12-24 11:46:01 -08:00
2016-12-14 23:48:11 -05:00
2016-12-03 15:55:01 -05:00
2016-12-03 20:51:35 -05:00
2016-11-04 14:34:47 -06:00
2016-12-24 11:46:01 -08:00
2017-01-10 13:34:43 +13:00
2016-10-31 10:56:36 -04:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-16 16:30:49 -05:00
2017-01-10 01:29:48 -05:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00
2016-12-21 10:59:34 -08:00
2016-12-24 11:46:01 -08:00
2016-12-05 19:03:49 -05:00
2016-11-30 08:38:07 +01:00
2016-12-25 17:21:22 +01:00
2017-01-24 16:26:14 -08:00
2016-12-24 11:46:01 -08:00
2016-12-24 11:46:01 -08:00