Changeset 1146


Ignore:
Timestamp:
Sep 1, 2008, 11:48:20 PM (17 years ago)
Author:
Gregg Young
Message:

Fixes strrchr trap in FreeCnrItemData when pci->pszFileName is NULL (Ticket 278)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/filldir.c

    r1114 r1146  
    4747  02 Aug 08 GKY Remove redundant strcpys from inner loop
    4848  23 Aug 08 GKY Free pszDisplayName when appropriate
     49  01 Sep 08 GKY Updated FreeCnrItemData toprevent trap in strrchr if pci->pszFileName is NULL.
    4950
    5051***********************************************************************/
     
    16251626  if (pci->pszSubject && pci->pszSubject != NullStr) {
    16261627    psz = pci->pszSubject;
    1627     // pci->pszSubject = NullStr;
     1628    //pci->pszSubject = NullStr;
    16281629    pci->pszSubject = NULL;             // for debug
    16291630    free(psz);
     
    16371638      pci->pszLongName != pci->pszDisplayName + 1) {
    16381639    psz = pci->pszLongName;
    1639     // pci->pszLongName = NullStr;
     1640    //pci->pszLongName = NullStr;
    16401641    pci->pszLongName = NULL;            // for debug
    16411642    free(psz);
    16421643  }
    1643 
    1644   if (pci->pszDisplayName &&
     1644  if (!pci->pszFileName)
     1645    DbgMsg(pszSrcFile, __LINE__, "FreeCnrItemData pci->pszFileName is NULL");
     1646  if (pci->pszFileName &&
     1647      pci->pszDisplayName &&
    16451648      pci->pszDisplayName != NullStr &&
    16461649      pci->pszDisplayName != pci->pszFileName &&
    16471650      pci->pszDisplayName != strrchr(pci->pszFileName, '\\') &&
     1651      pci->pszDisplayName != strrchr(pci->pszFileName, ':') &&
     1652      pci->pszDisplayName != strrchr(pci->pszFileName, ':') + 1 &&
    16481653      pci->pszDisplayName != strrchr(pci->pszFileName, '\\') + 1) {
    16491654    psz = pci->pszDisplayName;
     1655    //pci->pszDisplayName = NullStr;
    16501656    pci->pszDisplayName = NULL;         // for debug
    16511657    free(psz);
     
    16541660  if (pci->pszFileName && pci->pszFileName != NullStr) {
    16551661    psz = pci->pszFileName;
    1656     // pci->pszFileName = NullStr;
     1662    //pci->pszFileName = NullStr;
    16571663    pci->pszFileName = NULL;            // for debug
    16581664    free(psz);
     
    16611667  if (pci->pszFmtFileSize && pci->pszFmtFileSize != NullStr) {
    16621668    psz = pci->pszFmtFileSize;
    1663     // pci->pszFmtFileSize = NullStr;
     1669    //pci->pszFmtFileSize = NullStr;
    16641670    pci->pszFmtFileSize = NULL;         // for debug
    16651671    free(psz);
Note: See TracChangeset for help on using the changeset viewer.