--- ./source/private_module/target/ist_conn.c	2018-11-20 08:07:57.467141873 +0000
+++ ./source/private_module/target/ist_conn.c.hotpatch	2018-12-07 06:32:33.287141873 +0000
@@ -490,25 +490,25 @@
 {
     ISCSI_S8    *pTmpData = NULL;
     ISCSI_U32   uTmpSize = 0;
-
-    if ((v_pstContx->uCapability < v_uNeedLen)
-        && (BUF_MAX_TOTAL_SIZE > v_pstContx->uCapability)) 
-    {
-        uTmpSize = v_pstContx->uCapability << 1;
-        pTmpData = ISCSI_StatMalloc(v_pstContx->pstConn, uTmpSize);
-        if (NULL == pTmpData)
-        {
-            ISCSI_ERROR(LOG_ID_02DF, "No free memory.");
-            return RETURN_ERROR;
+    ISCSI_INFO(LOG_ID_02DF, "Capability %u, NeedLen %u.", v_pstContx->uCapability, v_uNeedLen);
+    if (v_pstContx->uCapability < v_uNeedLen) {
+        if (BUF_MAX_TOTAL_SIZE > v_pstContx->uCapability) {
+            uTmpSize = v_pstContx->uCapability << 1;
+            pTmpData = ISCSI_StatMalloc(v_pstContx->pstConn, uTmpSize);
+            if (NULL == pTmpData) {
+                ISCSI_ERROR(LOG_ID_02DF, "No free memory.");
+                return RETURN_ERROR;
+            }
+            memcpy(pTmpData, v_pstContx->pData, v_pstContx->uCapability);
+            ISCSI_StatFree(v_pstContx->pstConn, v_pstContx->pData, v_pstContx->uCapability);
+            v_pstContx->pData = pTmpData;
+            v_pstContx->uCapability = uTmpSize;
+            ISCSI_INFO(LOG_ID_02DF, "The uTmpSize is %u.", uTmpSize);
+			return RETURN_OK;
+        } else {
+ 	 	    ISCSI_ERROR(LOG_ID_02DF, "The need memory is over 64k.");
+ 	 	    return RETURN_ERROR;
         }
-
-        memcpy(pTmpData, v_pstContx->pData, v_pstContx->uCapability);
-
-        ISCSI_StatFree(v_pstContx->pstConn,
-                                    v_pstContx->pData, v_pstContx->uCapability);
-
-        v_pstContx->pData = pTmpData;
-        v_pstContx->uCapability = uTmpSize;
     }
 
     return RETURN_OK;
