ShellPkg: Refine the code logic of StrnCatGrow.

In order to indicate the catena length use StrnCatS instead of StrCatS to generate Destination string, and update the DestMax of Destination string.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hp.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17795 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
index 5b4c6d3..3521515 100644
--- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c
+++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
@@ -3254,7 +3254,8 @@
       *CurrentSize = NewSize;

     }

   } else {

-    *Destination = AllocateZeroPool((Count+1)*sizeof(CHAR16));

+    NewSize = (Count+1)*sizeof(CHAR16);

+    *Destination = AllocateZeroPool(NewSize);

   }

 

   //

@@ -3264,7 +3265,7 @@
     return (NULL);

   }

   

-  StrCatS(*Destination, Count + 1, Source);

+  StrnCatS(*Destination, NewSize/sizeof(CHAR16), Source, Count);

   return *Destination;

 }