VirtualBox

Changeset 105127 in vbox for trunk/src/VBox/Main/src-server


Ignore:
Timestamp:
Jul 3, 2024 10:18:33 PM (9 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
163757
Message:

Certificate repair function fix - bugref:10310

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/VRDEServerImpl.cpp

    r105124 r105127  
    290290 * @note Locks this object for writing.
    291291 */
    292 int VRDEServer::certificateRepair(BOOL &certificateGenerated)
    293 {
    294     int vrc = VINF_SUCCESS;
     292HRESULT VRDEServer::i_certificateRepair(BOOL &certificateGenerated)
     293{
    295294    if ( (mData->mapProperties["Security/Method"] != "RDP" || mData->mapProperties["Security/Method"] != "None"))
    296295    {
    297296        Utf8Str strServerCertificate("VRDEAutoGeneratedCert.pem");
    298         vrc = mParent->i_calculateFullPath(strServerCertificate, strServerCertificate);
    299         AssertRCReturn(vrc, vrc);
     297        int vrc = mParent->i_calculateFullPath(strServerCertificate, strServerCertificate);
     298        AssertRCReturn(vrc, VBOX_E_IPRT_ERROR);
    300299
    301300        Utf8Str strServerPrivateKey("VRDEAutoGeneratedPrivateKey.pem");
    302301        vrc = mParent->i_calculateFullPath(strServerPrivateKey, strServerPrivateKey);
    303         AssertRCReturn(vrc, vrc);
     302        AssertRCReturn(vrc, VBOX_E_IPRT_ERROR);
    304303
    305304        if ( RTFileExists(strServerPrivateKey.c_str()) && RTFileExists(strServerCertificate.c_str()) )
    306305        {
    307306            /* Check validity of certificate */
    308             RTCRX509CERTIFICATE pCertificate;
    309             BOOL validCert = false;
    310             vrc = RTCrX509Certificate_ReadFromFile(&pCertificate, strServerCertificate.c_str(), RTCRX509CERT_READ_F_PEM_ONLY,
     307            RTCRX509CERTIFICATE certificate;
     308            vrc = RTCrX509Certificate_ReadFromFile(&certificate, strServerCertificate.c_str(), RTCRX509CERT_READ_F_PEM_ONLY,
    311309                                                   &g_RTAsn1DefaultAllocator, NULL);
    312310            if(RT_FAILURE(vrc))
    313311            {
    314                 RTCrX509Certificate_Delete(&pCertificate);
     312                RTCrX509Certificate_Delete(&certificate);
    315313                return setError(VBOX_E_IPRT_ERROR, tr("Failed to read server certificate: (%Rrc)\n"), vrc);
    316314            }
    317315
    318316            RTTIMESPEC Now;
    319             if ( RTCrX509Validity_IsValidAtTimeSpec(&(&pCertificate)->TbsCertificate.Validity, RTTimeNow(&Now)) )
    320                 validCert = true;
    321 
    322             RTCrX509Certificate_Delete(&pCertificate);
     317            bool const validCert = RTCrX509Validity_IsValidAtTimeSpec(&certificate.TbsCertificate.Validity, RTTimeNow(&Now));
     318
     319            RTCrX509Certificate_Delete(&certificate);
    323320
    324321            Utf8Str strPath = mData->mapProperties["Security/ServerCertificate"];
     
    336333                alock.release();
    337334                certificateGenerated = true;
    338                 RTCrX509Certificate_Delete(&pCertificate);
    339335            }
    340336            else if ( (strPath.isEmpty() || strstr(strPath.c_str(),"VRDEAutoGeneratedCert.pem")) && !validCert)
     
    346342                if (RT_FAILURE(vrc))
    347343                {
    348                     RTCrX509Certificate_Delete(&pCertificate);
    349344                    i_rollback();
    350345                    return setError(VBOX_E_IPRT_ERROR, tr("Failed to auto generate server key and certificate: (%Rrc)\n"), vrc);
     
    395390        }
    396391    }
    397     return vrc;
     392    return S_OK;
    398393}
    399394
     
    436431        {
    437432            BOOL certificateGenerated = false;
    438             int vrc = certificateRepair(certificateGenerated);
     433            int vrc = i_certificateRepair(certificateGenerated);
    439434            if (RT_FAILURE(vrc))
    440435                LogRel((("Failed to auto generate server key and certificate: (%Rrc)\n"), vrc));
     
    634629    {
    635630        BOOL certificateGenerated = false;
    636         int vrc = certificateRepair(certificateGenerated);
     631        int vrc = i_certificateRepair(certificateGenerated);
    637632        if ( RT_FAILURE(vrc) )
    638633            LogRel((("Failed to auto generate server key and certificate: (%Rrc)\n"), vrc));
Note: See TracChangeset for help on using the changeset viewer.

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