fixed a problem possible overwrite memory in cmd. base on knowlges from bug 2017...
authorMagnus Olsen <magnus@greatlord.com>
Sun, 4 Feb 2007 18:19:34 +0000 (18:19 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sun, 4 Feb 2007 18:19:34 +0000 (18:19 +0000)
we simple do not allown overwrite the memory. both on trunk and 0.3.1

See issue #2017 for more details.

svn path=/trunk/; revision=25719

reactos/base/shell/cmd/cmd.c

index 526d01b..08b11e6 100644 (file)
@@ -187,6 +187,9 @@ ConvertULargeInteger (ULARGE_INTEGER num, LPTSTR des, INT len, BOOL bPutSeperato
        INT c = 0;
        INT n = 0;
 
+       if (len <= 1)
+               return 0;
+
        if (num.QuadPart == 0)
        {
                des[0] = _T('0');
@@ -203,6 +206,8 @@ ConvertULargeInteger (ULARGE_INTEGER num, LPTSTR des, INT len, BOOL bPutSeperato
                         temp[30 - c++] = (TCHAR)(num.QuadPart % 10) + _T('0');
                        num.QuadPart /= 10;
                }
+        if (c>len)
+                       c=len;
 
                for (n = 0; n <= c; n++)
                        des[n] = temp[31 - c + n];