Re: Oops when using growisofs

From: Michael Buesch
Date: Sun Jun 22 2008 - 18:28:54 EST


On Monday 23 June 2008 00:05:51 Michael Buesch wrote:
> > Note: r9 and r3 are both NULL pointers. r3 is the value returned from alloc_page_buffers.
> > R9 is a copy of that, which gets accessed.
>
> Hm, yeah. I looked at that code already, but I can't see how it could return
> a NULL pointer.

Well, actually, it can return a NULL pointer.

928 head = NULL;
929 offset = PAGE_SIZE;
930 while ((offset -= size) >= 0) {
...
949 }
950 return head;

So if size, which is a passed in as parameter, is > PAGE_SIZE it will return NULL.

The size parameter is calculated by doing
blocksize = 1 << inode->i_blkbits;
in an earlier function in the callchain.

So, well. I dunno what i_blkbits is. There's no docs in struct inode.

--
Greetings Michael.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/