diff --git a/lib/UnrarXLib/rar.cpp b/lib/UnrarXLib/rar.cpp index 7fe29370ba0e7..1b5ad04345cf3 100644 --- a/lib/UnrarXLib/rar.cpp +++ b/lib/UnrarXLib/rar.cpp @@ -203,9 +203,12 @@ int urarlib_get(char *rarfile, char *targetPath, char *fileToExtract, char *libp if (bShowProgress) { pExtract->GetDataIO().m_pDlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS); - pExtract->GetDataIO().m_pDlgProgress->SetHeading(fileToExtract); - pExtract->GetDataIO().m_pDlgProgress->SetCanCancel(false); - pExtract->GetDataIO().m_pDlgProgress->StartModal(); + if (pExtract->GetDataIO().m_pDlgProgress) + { + pExtract->GetDataIO().m_pDlgProgress->SetHeading(fileToExtract); + pExtract->GetDataIO().m_pDlgProgress->SetCanCancel(false); + pExtract->GetDataIO().m_pDlgProgress->StartModal(); + } } int64_t iOff=0; @@ -234,7 +237,8 @@ int urarlib_get(char *rarfile, char *targetPath, char *fileToExtract, char *libp if (pExtract->GetDataIO().bQuit) { - pExtract->GetDataIO().m_pDlgProgress->Close(); + if (pExtract->GetDataIO().m_pDlgProgress) + pExtract->GetDataIO().m_pDlgProgress->Close(); bRes = 2; break; } @@ -269,7 +273,8 @@ int urarlib_get(char *rarfile, char *targetPath, char *fileToExtract, char *libp pExtract->GetDataIO().m_pDlgProgress->ShowProgressBar(false); } if (bShowProgress) - pExtract->GetDataIO().m_pDlgProgress->Close(); + if (pExtract->GetDataIO().m_pDlgProgress) + pExtract->GetDataIO().m_pDlgProgress->Close(); } } }