Changeset 733 for trunk/src


Ignore:
Timestamp:
Dec 17, 2006, 5:42:54 AM (19 years ago)
Author:
bird
Message:

check for buffer overflow.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/kDep.c

    r727 r733  
    206206                memcpy(psz, FindFileData.cAlternateFileName, cch);
    207207            else
    208             {
    209                 memmove(psz + cchAlt, pszEnd, strlen(pszEnd) + 1);
    210                 pszEnd -= cchDelta;
    211                 memcpy(psz, FindFileData.cAlternateFileName, cchAlt);
     208            {   int cbLeft = strlen(pszEnd) + 1;
     209                if ((psz - pszPath) + cbLeft + cchAlt <= _MAX_PATH)
     210                {
     211                    memmove(psz + cchAlt, pszEnd, cbLeft);
     212                    pszEnd -= cchDelta;
     213                    memcpy(psz, FindFileData.cAlternateFileName, cchAlt);
     214                }
     215                else
     216                    fprintf(stderr, "kDep: case & space fixed filename is growing too long (%d bytes)! '%s'\n",
     217                            (psz - pszPath) + cbLeft + cchAlt, pszPath);
    212218            }
    213219        }
Note: See TracChangeset for help on using the changeset viewer.