]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Avoid sign-extension of non-magic Message* values
authorDan Mick <dan.mick@inktank.com>
Tue, 2 Oct 2012 22:37:42 +0000 (15:37 -0700)
committerDan Mick <dan.mick@inktank.com>
Tue, 2 Oct 2012 23:04:35 +0000 (16:04 -0700)
Cast to (unsigned long) when checking for magic values, so
real ptrs don't get sign-extended.  Avoids triggering
assert(inq == &local_queue) failure.

Fixes: #3251
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage.weil@inktank.com>
src/msg/DispatchQueue.cc

index 437f767429ea02d6441abbfc5d61de9774ec5a98..84a0f003d147f078a29de577a1bca95ba2e1bcbb 100644 (file)
@@ -211,7 +211,7 @@ void DispatchQueue::entry()
       }
 
       Connection *con = NULL;
-      if ((long)m < DispatchQueue::D_NUM_CODES) {
+      if ((unsigned long)m < DispatchQueue::D_NUM_CODES) {
        assert(inq == &local_queue);
        con = con_q.front();
        con_q.pop_front();
@@ -226,16 +226,16 @@ void DispatchQueue::entry()
       if (dequeued)
        inq->put();
 
-      if ((long)m == DispatchQueue::D_BAD_REMOTE_RESET) {
+      if ((unsigned long)m == DispatchQueue::D_BAD_REMOTE_RESET) {
        msgr->ms_deliver_handle_remote_reset(con);
        con->put();
-      } else if ((long)m == DispatchQueue::D_CONNECT) {
+      } else if ((unsigned long)m == DispatchQueue::D_CONNECT) {
        msgr->ms_deliver_handle_connect(con);
        con->put();
-      } else if ((long)m == DispatchQueue::D_ACCEPT) {
+      } else if ((unsigned long)m == DispatchQueue::D_ACCEPT) {
        msgr->ms_deliver_handle_accept(con);
        con->put();
-      } else if ((long)m == DispatchQueue::D_BAD_RESET) {
+      } else if ((unsigned long)m == DispatchQueue::D_BAD_RESET) {
        msgr->ms_deliver_handle_reset(con);
        con->put();
       } else {