Skip to content

Commit b98333c

Browse files
Alexander Aringteigland
authored andcommitted
dlm: fix possible lkb_resource null dereference
This patch fixes a possible null pointer dereference when this function is called from request_lock() as lkb->lkb_resource is not assigned yet, only after validate_lock_args() by calling attach_lkb(). Another issue is that a resource name could be a non printable bytearray and we cannot assume to be ASCII coded. The log functionality is probably never being hit when DLM is used in normal way and no debug logging is enabled. The null pointer dereference can only occur on a new created lkb that does not have the resource assigned yet, it probably never hits the null pointer dereference but we should be sure that other changes might not change this behaviour and we actually can hit the mentioned null pointer dereference. In this patch we just drop the printout of the resource name, the lkb id is enough to make a possible connection to a resource name if this exists. Signed-off-by: Alexander Aring <aahringo@redhat.com> Signed-off-by: David Teigland <teigland@redhat.com>
1 parent 6d59f2f commit b98333c

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

fs/dlm/lock.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2861,16 +2861,14 @@ static int validate_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
28612861
case -EINVAL:
28622862
/* annoy the user because dlm usage is wrong */
28632863
WARN_ON(1);
2864-
log_error(ls, "%s %d %x %x %x %d %d %s", __func__,
2864+
log_error(ls, "%s %d %x %x %x %d %d", __func__,
28652865
rv, lkb->lkb_id, dlm_iflags_val(lkb), args->flags,
2866-
lkb->lkb_status, lkb->lkb_wait_type,
2867-
lkb->lkb_resource->res_name);
2866+
lkb->lkb_status, lkb->lkb_wait_type);
28682867
break;
28692868
default:
2870-
log_debug(ls, "%s %d %x %x %x %d %d %s", __func__,
2869+
log_debug(ls, "%s %d %x %x %x %d %d", __func__,
28712870
rv, lkb->lkb_id, dlm_iflags_val(lkb), args->flags,
2872-
lkb->lkb_status, lkb->lkb_wait_type,
2873-
lkb->lkb_resource->res_name);
2871+
lkb->lkb_status, lkb->lkb_wait_type);
28742872
break;
28752873
}
28762874

0 commit comments

Comments
 (0)