aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNick Leppänen Larsson <frals@frals.se>2012-08-25 15:14:59 +0200
committerNick Leppänen Larsson <frals@frals.se>2012-08-25 15:19:53 +0200
commit06f7d02038b33dc4095112052704c27b152ab457 (patch)
tree0cf88c014073f9012fe8568b4386dd6fab0f41b5 /lib
parentae00fdfdfd57b22bccd81a08f95ec86a883576f7 (diff)
[UnrarXLib] check validity of ui ptr before access
Check that pExtract->GetDataIO().m_pDlgProgress is not invalid before accessing it.
Diffstat (limited to 'lib')
-rw-r--r--lib/UnrarXLib/rar.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/UnrarXLib/rar.cpp b/lib/UnrarXLib/rar.cpp
index 7fe29370ba..1b5ad04345 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();
}
}
}