Cedar/Session.c: fix "use after free" in CleanupSession()
Fixes
@@ -1223,6 +1223,9 @@ void CleanupSession(SESSION *s)
// Release the client connection options
if (s->ClientOption != NULL)
{
+#ifdef OS_UNIX
+ UnixVLanSetState(s->ClientOption->DeviceName, false);
+#endif
Free(s->ClientOption);
}
@@ -1278,12 +1281,7 @@ void CleanupSession(SESSION *s)
{
FreePacketAdapter(s->PacketAdapter);
}
-#ifdef OS_UNIX
- if (s->ClientOption != NULL)
- {
- UnixVLanSetState(s->ClientOption->DeviceName, false);
- }
-#endif
+
if (s->OldTraffic != NULL)
{
FreeTraffic(s->OldTraffic);
