瀏覽代碼

fix(persistent_sessions): protect against looking up stale data

Tobias Lindahl 4 年之前
父節點
當前提交
ce49a281ed
共有 1 個文件被更改,包括 11 次插入6 次删除
  1. 11 6
      apps/emqx/src/emqx_persistent_session.erl

+ 11 - 6
apps/emqx/src/emqx_persistent_session.erl

@@ -179,12 +179,17 @@ timestamp_from_conninfo(ConnInfo) ->
     end.
 
 lookup(ClientID) when is_binary(ClientID) ->
-    case lookup_session_store(ClientID) of
-        none -> none;
-        {value, #session_store{session = S} = SS} ->
-            case persistent_session_status(SS) of
-                expired        -> {expired, S};
-                persistent     -> {persistent, S}
+    case is_store_enabled() of
+        false ->
+            none;
+        true ->
+            case lookup_session_store(ClientID) of
+                none -> none;
+                {value, #session_store{session = S} = SS} ->
+                    case persistent_session_status(SS) of
+                        expired        -> {expired, S};
+                        persistent     -> {persistent, S}
+                    end
             end
     end.