Eric Sandeen db52d09ecb xfs: catch invalid negative blknos in _xfs_buf_find()
Here blkno is a daddr_t, which is a __s64; it's possible to hold
a value which is negative, and thus pass the (blkno >= eofs)
test.  Then we try to do a xfs_perag_get() for a ridiculous
agno via xfs_daddr_to_agno(), and bad things happen when that
fails, and returns a null pag which is dereferenced shortly
thereafter.

Found via a user-supplied fuzzed image...

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-11-28 14:03:55 +11:00
..
2014-07-30 09:12:05 +10:00
2014-10-02 09:18:13 +10:00
2013-11-06 16:31:27 -06:00
2014-07-15 08:07:01 +10:00
2013-05-07 18:45:36 -05:00
2011-08-12 16:21:35 -05:00
2012-11-19 20:11:24 -06:00
2014-06-25 14:58:08 +10:00
2013-08-12 16:53:39 -05:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2013-08-12 16:56:06 -05:00
2014-10-02 09:18:13 +10:00
2013-05-07 18:45:36 -05:00
2014-06-25 14:58:08 +10:00
2014-07-24 20:49:57 +10:00
2014-07-30 09:12:05 +10:00
2014-09-09 11:52:42 +10:00
2014-10-02 09:18:13 +10:00
2014-06-25 14:58:08 +10:00
2014-07-30 09:12:05 +10:00
2014-06-25 14:58:08 +10:00
2013-05-07 18:45:36 -05:00