1
1

Potential double free of locks

mca_btl_openib_endpoint_post_rr_nolock is freeing the endpoint lock on
the error case, but most/all of the functions calling this free the lock
regardless of its error case.  Thus resulting is a double free of the
lock.

This commit was SVN r18131.
Этот коммит содержится в:
Jon Mason 2008-04-10 21:15:01 +00:00
родитель e050f37578
Коммит 08ead87604

Просмотреть файл

@ -287,7 +287,6 @@ static inline int mca_btl_openib_endpoint_post_rr_nolock(
cm_received = ep->qps[qp].u.pp_qp.cm_received;
if((rc = post_recvs(ep, qp, num_post)) != OMPI_SUCCESS) {
OPAL_THREAD_UNLOCK(&ep->endpoint_lock);
return rc;
}
OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.rd_posted, num_post);
@ -295,7 +294,6 @@ static inline int mca_btl_openib_endpoint_post_rr_nolock(
/* post buffers for credit management on credit management qp */
if((rc = post_recvs(ep, cqp, cm_received)) != OMPI_SUCCESS) {
OPAL_THREAD_UNLOCK(&ep->endpoint_lock);
return rc;
}
OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.cm_return, cm_received);