On Sat, 2007-06-02 at 09:28 -0700, Jeremy Fitzhardinge wrote: > Dave Kleikamp wrote: > > I'm on Christoph's side here. I don't think it makes sense for any code > > to ask to allocate zero bytes of memory and expect valid memory to be > > returned. > > > > Yes, everyone agrees on that. If you do kmalloc(0), its never OK to > dereference the result. The question is whether kmalloc(0) should complain.
Yeah, I see that you aren't necessarily asking for valid memory, just something that appears valid. I'm still of the mind that if code is asking for a zero-length allocation, it's raising a flag that it's not taking some corner case into account. But I think I'm just regurgitating what Christoph is arguing. > > Would a compromise be to return a pointer to some known invalid region? > > This way the kmalloc(0) call would appear successful to the caller, but > > any access to the memory would result in an exception. > > > > Yes, that's what Christoph has posted. Oh. I went back and re-read the thread and it looks like you proposed this already. I don't see where Christoph did, or agreed, but maybe I missed something. > I'm slightly concerned about > kmalloc() returning the same non-NULL address multiple times, but it > seems sound otherwise. If the caller is asking for 0 bytes, it shouldn't be doing anything with the returned address except checking for a NULL return. But then, it's hard to predict everything that calling code might be doing, such as allocating buffers and creating a hash based on their addresses. Of course, if there's code that would have a problem with it, I think it's a further argument that it would be better off avoiding the calling kmalloc(0) in the first place. Shaggy -- David Kleikamp IBM Linux Technology Center - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/