NetBSD-Bugs archive

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

Re: port-xen/47193: xenwatch handlers are added twice to the list of pending watches

On 17/11/12 17:07, Cherry G.Mathew wrote:
> Yes, but split() itself is not called unconditionally, whereas malloc()
> is. 

I've taken a quick look at this, and body is allocated in process_msg.
If message type is a watch, body is freed by split, if it's not a watch,
body is saved to msg->u.reply.body, which is appended to the list of
pending messages.

This list is read by read_reply, which will return the body to the
caller function, that's xenbus_dev_request_and_reply, which will also
return body to the caller function, or xs_talkv, which will free the
body if msg type is XS_ERROR or user did not provide a valid pointer to
store body to, if user provided a valid pointer, body is returned.

Did you mean that there is an error in process_msg itself, or in one of
the callers of the other functions that also use body? If so we should
open a new PR.

Regarding the problem at hand, do you think the last patch is ok to commit?

Home | Main Index | Thread Index | Old Index