Quoting r. Roland Dreier <[EMAIL PROTECTED]>:
> Subject: Re: [PATCH] ipoib_mcast_restart_task
> 
>     Michael> The mcast pointer comes from stack.  Surely we could have
>     Michael> use after free in ipoib_mcast_join_complete trigger data
>     Michael> corruption on stack and then trip on it?
> 
> Now you're confusing me.  Isn't the mcast pointer kmalloc()ed?

Sorry about that.
I think the memory *it points to* is kmalloc()ed - the
the pointer itself I think comes from stack.

static void
ipoib_mcast_sendonly_join_complete(int status,
                                   struct ib_sa_mcmember_rec *mcmember,
                                   void *mcast_ptr)
{
        struct ipoib_mcast *mcast = mcast_ptr;
        struct net_device *dev = mcast->dev;

So all I had in mind was obvious things like:

Assume that you have mcast point to random kernel data.
doing things like skb_dequeue(&mcast->pkt_queue) will now do random things
to random memory locations, it could be stack or anything else.

-- 
MST
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to