Skip to content

Commit

Permalink
uprobes: Kill the pointless inode/uc checks in register/unregister
Browse files Browse the repository at this point in the history
register/unregister verifies that inode/uc != NULL. For what?
This really looks like "hide the potential problem", the caller
should pass the valid data.

register() also checks uc->next == NULL, probably to prevent the
double-register but the caller can do other stupid/wrong things.
If we do this check, then we should document that uc->next should
be cleared before register() and add BUG_ON().

Also add the small comment about the i_size_read() check.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
  • Loading branch information
Oleg Nesterov committed Feb 8, 2013
1 parent bbc33d0 commit f0744af
Showing 1 changed file with 1 addition and 6 deletions.
7 changes: 1 addition & 6 deletions kernel/events/uprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -844,9 +844,7 @@ int uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *
struct uprobe *uprobe;
int ret;

if (!inode || !uc || uc->next)
return -EINVAL;

/* Racy, just to catch the obvious mistakes */
if (offset > i_size_read(inode))
return -EINVAL;

Expand Down Expand Up @@ -883,9 +881,6 @@ void uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consume
{
struct uprobe *uprobe;

if (!inode || !uc)
return;

uprobe = find_uprobe(inode, offset);
if (!uprobe)
return;
Expand Down

0 comments on commit f0744af

Please sign in to comment.