VirtualBox

Changeset 69521 in vbox


Ignore:
Timestamp:
Oct 30, 2017 10:59:20 AM (7 years ago)
Author:
vboxsync
Message:

pemfile.cpp: Don't leak pSection if binary and _F_ONLY_PEM is used. (parfait/clang-analyzer)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/crypto/pemfile.cpp

    r69111 r69521  
    415415            RTCrPemFreeSections(*ppSectionHead);
    416416        }
    417         else if (!(fFlags & RTCRPEMREADFILE_F_ONLY_PEM))
    418         {
    419             /*
    420              * No PEM section found.  Return the whole file as one binary section.
    421              */
    422             //pSection->pNext       = NULL;
    423             //pSection->pMarker     = NULL;
    424             pSection->pbData        = (uint8_t *)RTMemDup(pbContent, cbContent);
    425             pSection->cbData        = cbContent;
    426             //pSection->pszPreamble = NULL;
    427             //pSection->cchPreamble = 0;
    428             if (pSection->pbData)
     417        else
     418        {
     419            if (!(fFlags & RTCRPEMREADFILE_F_ONLY_PEM))
    429420            {
    430                 *ppSectionHead = pSection;
    431                 return VINF_SUCCESS;
     421                /*
     422                 * No PEM section found.  Return the whole file as one binary section.
     423                 */
     424                //pSection->pNext       = NULL;
     425                //pSection->pMarker     = NULL;
     426                pSection->pbData        = (uint8_t *)RTMemDup(pbContent, cbContent);
     427                pSection->cbData        = cbContent;
     428                //pSection->pszPreamble = NULL;
     429                //pSection->cchPreamble = 0;
     430                if (pSection->pbData)
     431                {
     432                    *ppSectionHead = pSection;
     433                    return VINF_SUCCESS;
     434                }
     435
     436                rc = VERR_NO_MEMORY;
    432437            }
    433 
    434             rc = VERR_NO_MEMORY;
     438            else
     439                rc = VWRN_NOT_FOUND;
    435440            RTMemFree(pSection);
    436441        }
    437         else
    438             rc = VWRN_NOT_FOUND;
    439442    }
    440443    else
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette