Wlan: Fix for a double free and recover logic in DXE

DXE rx path frees a buffer which is already freed after a wrong recovery
logic trigger

Change-Id: I67003a2338ad16169e92a6d6131a8c83133a08c4
CR-Fixed: 400621
diff --git a/CORE/DXE/src/wlan_qct_dxe.c b/CORE/DXE/src/wlan_qct_dxe.c
index 531b370..b63abb1 100644
--- a/CORE/DXE/src/wlan_qct_dxe.c
+++ b/CORE/DXE/src/wlan_qct_dxe.c
@@ -1638,6 +1638,7 @@
       /* Reap Rx frames */ 
       rx_reaped_buf[frameCount] = currentCtrlBlk->xfrFrame;
       frameCount++;
+      currentCtrlBlk->xfrFrame = NULL;
 
       /* Now try to refill the ring with empty Rx buffers to keep DXE busy */
       dxeRXFrameRefillRing(dxeCtxt,channelEntry);
@@ -1780,6 +1781,7 @@
             frameCount = dxeRXFrameRouteUpperLayer(dxeCtxt, channelEntry);
             HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_ERROR,
                      "re-sync routed %d frames to upper layer", (int)frameCount);
+            channelEntry->numFragmentCurrentChain = frameCount;
             frameCount = 0;
          }
          /* Successive Empty interrupt