aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormontellese <montellese@xbmc.org>2012-12-22 14:21:44 +0100
committermontellese <montellese@xbmc.org>2012-12-30 11:43:52 +0100
commitd1b68fb1a507dd6f23ab5eb3633cf0d543a90b35 (patch)
treea27d5be41684c6aaaca86dd646841e69dd4834b1
parent51e87c7b0c117d55d24064d76af2a4dc0dac68a1 (diff)
jsonrpc: check pointers before dereferencing in CPlayerOperations::GetItem() (fixes #13853)
-rw-r--r--xbmc/interfaces/json-rpc/PlayerOperations.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/xbmc/interfaces/json-rpc/PlayerOperations.cpp b/xbmc/interfaces/json-rpc/PlayerOperations.cpp
index dd2abd4cf1..fb2b5e4492 100644
--- a/xbmc/interfaces/json-rpc/PlayerOperations.cpp
+++ b/xbmc/interfaces/json-rpc/PlayerOperations.cpp
@@ -113,14 +113,16 @@ JSONRPC_STATUS CPlayerOperations::GetItem(const CStdString &method, ITransportLa
if (IsPVRChannel())
{
CPVRChannelPtr currentChannel;
- if (g_PVRManager.GetCurrentChannel(currentChannel))
+ if (g_PVRManager.GetCurrentChannel(currentChannel) && currentChannel.get() != NULL)
fileItem = CFileItemPtr(new CFileItem(*currentChannel.get()));
}
else if (player == Video)
{
if (!CVideoLibrary::FillFileItem(g_application.CurrentFile(), fileItem, parameterObject))
{
- fileItem = CFileItemPtr(new CFileItem(*g_infoManager.GetCurrentMovieTag()));
+ const CVideoInfoTag *currentVideoTag = g_infoManager.GetCurrentMovieTag();
+ if (currentVideoTag != NULL)
+ fileItem = CFileItemPtr(new CFileItem(*currentVideoTag));
fileItem->SetPath(g_application.CurrentFileItem().GetPath());
}
}
@@ -128,7 +130,9 @@ JSONRPC_STATUS CPlayerOperations::GetItem(const CStdString &method, ITransportLa
{
if (!CAudioLibrary::FillFileItem(g_application.CurrentFile(), fileItem, parameterObject))
{
- fileItem = CFileItemPtr(new CFileItem(*g_infoManager.GetCurrentSongTag()));
+ const MUSIC_INFO::CMusicInfoTag *currentMusicTag = g_infoManager.GetCurrentSongTag();
+ if (currentMusicTag != NULL)
+ fileItem = CFileItemPtr(new CFileItem(*currentMusicTag));
fileItem->SetPath(g_application.CurrentFileItem().GetPath());
}
}