This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Review patches of user space kprobe


> >>>>> >>+	head = &kprobe_table[hash_long((unsigned long)inode * offset,
> >>>>> >>+				       KPROBE_HASH_BITS)];
> >>>>> >>+	hlist_for_each_entry(p, node, head, hlist) {
> >>>>> >>+		if (p->pre_handler == aggr_pre_handler)
> >>>>> >>+			return p;
> >>>>> >>+		else {
> >>>>> >>+			struct uprobe *user = container_of(p,
> >>>>> >>+							struct uprobe,
> >>>>> kp);
> >>>>> Kprobe and uprobe share the same hash table. Does p here always point to
> >>>>> uprobe?
> >>>>
> >>>>Check can be made before accessig uprobe.
> >>>>if (!kernel_text_address((unsigned long)p->addr))
> >>Incorrect. get_uprobe, the caller of get_uprobe_at, might be crazy. current_uprobe might be set as up and get_user_page(up) is called
> >>incorrectly. The logic is *not clear*.
> I might misunderstand your reply. If put the check before using container_of in function get_uprobe_at, the issue could be resolved.

even I meant the same thing of adding a check before we access uprobe structure using container_of.


Thanks
Prasanna
-- 
Prasanna S Panchamukhi
Linux Technology Center
India Software Labs, IBM Bangalore
Email: prasanna@in.ibm.com
Ph: 91-80-25044636


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]