]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/MDS.cc: fix dereference null return value
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Wed, 22 May 2013 13:42:52 +0000 (15:42 +0200)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Wed, 22 May 2013 13:42:52 +0000 (15:42 +0200)
Fix for:

returned_null: Function "SessionMap::get_session(entity_name_t)" returns
  null (checked 12 out of 14 times)

CID 739601 (#1 of 1): Dereference null return value (NULL_RETURNS)
  dereference: Dereferencing a pointer that might be null
  "this->sessionmap.get_session(entity_name_t::CLIENT(client.v))" when
  calling "MDS::send_message_client_counted(Message *, Session *)"

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/mds/MDS.cc

index 935fb0c417ed5b45cbb14da69bc168e6ae96d10b..d5d6001151ebd359cdeeeee192e4e6fd5f78c9b3 100644 (file)
@@ -386,8 +386,9 @@ void MDS::forward_message_mds(Message *m, int mds)
 
 void MDS::send_message_client_counted(Message *m, client_t client)
 {
-  if (sessionmap.have_session(entity_name_t::CLIENT(client.v))) {
-    send_message_client_counted(m, sessionmap.get_session(entity_name_t::CLIENT(client.v)));
+  Session *session =  sessionmap.get_session(entity_name_t::CLIENT(client.v));
+  if (session) {
+    send_message_client_counted(m, session);
   } else {
     dout(10) << "send_message_client_counted no session for client." << client << " " << *m << dendl;
   }