On 04/21/13 16:55, Eric Sandeen wrote:
On 4/21/13 12:41 PM, Mark Tinguely wrote:
This problem happened locally with a bad inode number from xfs
recovery. xfs_perag_get() can return NULL if given a bad agno.
Most callers of xfs_perag_get() do not check for a NULL before
using the pointer. This patch forces a shutdown of the filesystem
for those callers that do not check the return value rather than
crashing on a dereferenced NULL pointer.
Hi Mark -
I'm curious, what was the callchain when this happened? Was it
during recovery? If so, would aborting recovery be more prudent?
I might be missing something, but I'm not sure how shutting
down avoids a subsequent null ptr deref& crash.
i.e. if a caller does something like:
pag = xfs_perag_get(mp, agno);
spin_lock(&pag->pagb_lock);
shutting down in xfs_perag_get doesn't save us from a
null pag pointer, would it?
Thanks,
-Eric
You are correct, we have to exit the routine(s) to avoid the
dereference. Let the callers handle the error.
Sorry for the noise.
--Mark.
_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs