[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: where to start?





Exactly, please don't by shy to share your finding/ideas... Just do it
: )  Maybe you could be wrong on what you're doing or the idea you
have, but it could lead to a right idea in the same dept. or possibly
another. On the fly innovation : )


On Sat, 10 Jun 2000, you wrote:
> On Sat, 10 Jun 2000, Mathijs Mohlmann wrote:
> 
> > Which brings me to my next question. How far should we go? 
> > Imagine a function that just can't take a null pointer as
> > argument. Every caller checks to make sure that no null 
> > pointer is passed. Should we introduce in extra sanity check
> > in that function to make absolutly sure? If we do that we
> > prevent a lot of future bugs from happening. On the other 
> > hand we can forget about mainstream kernel inclusion.
> 
> What you have to be aware of, is that some of the functions
> allow NULL inputs and perform in slightly different ways.
> As code gets more documented, this will become easier.
> 
> As an example, I recently made a patch that added a check
> to kmalloc() for 0 byte allocations. When I booted the
> kernel, I got messages every second from select()
> allocating 0 bytes.  What I didn't know is that it's
> perfectly valid (though aparently non-sensical) for
> kmalloc to allocate 0 bytes. It actually returns a ptr
> to a mem area where you can store 0 bytes :)
> 
> I think this was a perfect case of someone who didn't
> really know what he was doing having what he thought
> was a good idea.  Sometimes this pays off, but not
> always, but don't be afraid to share results.
> I think the important thing is that even if your
> findings turn out to be wrong (as mine were in this
> case), that the code is checked.
> 
> 
> For the curious, a patch to find out who called a function
> with 'invalid' arguments looks like this..
> 
> +   if (size==0) {
> +       printk("DEBUG: kmalloc() called with size==0 !! caller=%p\n",
> +           __builtin_return_address(0));
> +   }
> 
> This will print out a hex address for the caller.
> You can look up the nearest match in System.map to
> find the function name.
> 
> 
> regards,
> 
> -- 
> Dave.
> 
> 
> Kernel-audit:  discussion list for security and the linux kernel
> Archive:       http://mail.nl.linux.org/kernel-audit/
> 
> 
> Kernel-audit:  discussion list for security and the linux kernel
> Archive:       http://mail.nl.linux.org/kernel-audit/
-- 
Bryan Paxton

"How should I know if it works? That's what beta testers are for. I
          only coded it."
 -- Linus Torvalds.



Kernel-audit:  discussion list for security and the linux kernel
Archive:       http://mail.nl.linux.org/kernel-audit/