Reset pointer to NULL after free.
authorakallabeth <akallabeth@posteo.net>
Tue, 19 May 2020 13:18:55 +0000 (15:18 +0200)
committerakallabeth <akallabeth@posteo.net>
Wed, 20 May 2020 13:41:24 +0000 (15:41 +0200)
(cherry picked from commit 33c7f808154c6682d3b84526a46d79f3e8d5c1ac)

channels/drdynvc/client/drdynvc_main.c
channels/rdpgfx/client/rdpgfx_main.c

index d3f8fa2..5ebd37d 100644 (file)
@@ -347,6 +347,7 @@ static void dvcman_channel_free(void* arg)
                if (channel->channel_callback)
                {
                        IFCALL(channel->channel_callback->OnClose, channel->channel_callback);
+                       channel->channel_callback = NULL;
                }
 
                if (channel->status == CHANNEL_RC_OK)
index 8b9f160..6ca75bd 100644 (file)
@@ -1826,12 +1826,6 @@ static UINT rdpgfx_on_close(IWTSVirtualChannelCallback* pChannelCallback)
        free_surfaces(context, gfx->SurfaceTable);
        evict_cache_slots(context, gfx->MaxCacheSlots, gfx->CacheSlots);
 
-       if (gfx->listener_callback)
-       {
-               free(gfx->listener_callback);
-               gfx->listener_callback = NULL;
-       }
-
        free(callback);
        gfx->UnacknowledgedFrames = 0;
        gfx->TotalDecodedFrames = 0;