[dm-devel] [PATCH 2/3] access vecs memory outside of locking range in check_path()
Christophe Varoqui
christophe.varoqui at opensvc.com
Wed Oct 19 06:00:23 UTC 2016
Merged.
On Tue, Oct 18, 2016 at 6:22 PM, Benjamin Marzinski <bmarzins at redhat.com>
wrote:
> On Tue, Oct 18, 2016 at 10:51:08AM +0800, tang.junhui at zte.com.cn wrote:
> > From: "tang.junhui" <tang.junhui at zte.com.cn>
> >
> > there are vecs->mpvec memory accesses outside of locking range in
> > check_path(), the judgments is not necessary since the they has
> > existed in vector_foreach_slot(), so delete them.
>
> ACK
>
> -Ben
>
>
> > Signed-off-by: tang.junhui <tang.junhui at zte.com.cn>
> > ---
> > multipathd/main.c | 45 ++++++++++++++++++++++-----------------------
> > 1 file changed, 22 insertions(+), 23 deletions(-)
> >
> > diff --git a/multipathd/main.c b/multipathd/main.c
> > index b6eb696..e369a79 100644
> > --- a/multipathd/main.c
> > +++ b/multipathd/main.c
> > @@ -1804,30 +1804,29 @@ checkerloop (void *ap)
> > condlog(4, "timeout waiting for DAEMON_IDLE");
> > continue;
> > }
> > - if (vecs->pathvec) {
> > - pthread_cleanup_push(cleanup_lock, &vecs->lock);
> > - lock(&vecs->lock);
> > - pthread_testcancel();
> > - vector_foreach_slot (vecs->pathvec, pp, i) {
> > - rc = check_path(vecs, pp, ticks);
> > - if (rc < 0) {
> > - vector_del_slot(vecs->pathvec, i);
> > - free_path(pp);
> > - i--;
> > - } else
> > - num_paths += rc;
> > - }
> > - lock_cleanup_pop(vecs->lock);
> > - }
> > - if (vecs->mpvec) {
> > - pthread_cleanup_push(cleanup_lock, &vecs->lock);
> > - lock(&vecs->lock);
> > - pthread_testcancel();
> > - defered_failback_tick(vecs->mpvec);
> > - retry_count_tick(vecs->mpvec);
> > - missing_uev_wait_tick(vecs);
> > - lock_cleanup_pop(vecs->lock);
> > +
> > + pthread_cleanup_push(cleanup_lock, &vecs->lock);
> > + lock(&vecs->lock);
> > + pthread_testcancel();
> > + vector_foreach_slot (vecs->pathvec, pp, i) {
> > + rc = check_path(vecs, pp, ticks);
> > + if (rc < 0) {
> > + vector_del_slot(vecs->pathvec, i);
> > + free_path(pp);
> > + i--;
> > + } else
> > + num_paths += rc;
> > }
> > + lock_cleanup_pop(vecs->lock);
> > +
> > + pthread_cleanup_push(cleanup_lock, &vecs->lock);
> > + lock(&vecs->lock);
> > + pthread_testcancel();
> > + defered_failback_tick(vecs->mpvec);
> > + retry_count_tick(vecs->mpvec);
> > + missing_uev_wait_tick(vecs);
> > + lock_cleanup_pop(vecs->lock);
> > +
> > if (count)
> > count--;
> > else {
> > --
> > 2.8.1.windows.1
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20161019/c4b52dbb/attachment.htm>
More information about the dm-devel
mailing list