merge in nyc-release history after reset to nyc-dev
diff --git a/qcwcn/wifi_hal/llstats.cpp b/qcwcn/wifi_hal/llstats.cpp
index c0e72fb..419c3c0 100644
--- a/qcwcn/wifi_hal/llstats.cpp
+++ b/qcwcn/wifi_hal/llstats.cpp
@@ -1020,6 +1020,11 @@
                                     mResultsParams.radio_stat);
                             if(mResultsParams.radio_stat)
                             {
+                                if (mResultsParams.radio_stat->tx_time_per_levels)
+                                {
+                                    free(mResultsParams.radio_stat->tx_time_per_levels);
+                                    mResultsParams.radio_stat->tx_time_per_levels = NULL;
+                                }
                                 free(mResultsParams.radio_stat);
                                 mResultsParams.radio_stat = NULL;
                             }
@@ -1033,7 +1038,7 @@
                 case QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_PEERS:
                 {
                     struct nlattr *peerInfo;
-                    wifi_iface_stat *pIfaceStat;
+                    wifi_iface_stat *pIfaceStat = NULL;
                     u32 numPeers, num_rates = 0;
                     if (!tb_vendor[
                             QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_NUM_PEERS])
@@ -1098,9 +1103,12 @@
                         }
 
                         memset(pIfaceStat, 0, resultsBufSize);
-                        if(mResultsParams.iface_stat)
+                        if(mResultsParams.iface_stat) {
                             memcpy ( pIfaceStat, mResultsParams.iface_stat,
                                 sizeof(wifi_iface_stat));
+                            free (mResultsParams.iface_stat);
+                            mResultsParams.iface_stat = pIfaceStat;
+                        }
                         wifi_peer_info *pPeerStats;
                         pIfaceStat->num_peers = numPeers;
 
@@ -1132,9 +1140,6 @@
                                 goto cleanup;
                             }
                         }
-                        if(mResultsParams.iface_stat)
-                            free (mResultsParams.iface_stat);
-                        mResultsParams.iface_stat = pIfaceStat;
                     }
 
                     // Number of Radios are 1 for now
@@ -1143,6 +1148,11 @@
                             mResultsParams.radio_stat);
                     if(mResultsParams.radio_stat)
                     {
+                        if (mResultsParams.radio_stat->tx_time_per_levels)
+                        {
+                            free(mResultsParams.radio_stat->tx_time_per_levels);
+                            mResultsParams.radio_stat->tx_time_per_levels = NULL;
+                        }
                         free(mResultsParams.radio_stat);
                         mResultsParams.radio_stat = NULL;
                     }
@@ -1207,6 +1217,11 @@
 cleanup:
     if(mResultsParams.radio_stat)
     {
+        if (mResultsParams.radio_stat->tx_time_per_levels)
+        {
+            free(mResultsParams.radio_stat->tx_time_per_levels);
+            mResultsParams.radio_stat->tx_time_per_levels = NULL;
+        }
         free(mResultsParams.radio_stat);
         mResultsParams.radio_stat = NULL;
     }