From ee3045bac042fc311a275936db65bff308708730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 18:38:30 +0100 Subject: [PATCH 1/7] issue 1269605 First check makes second check impossible to be true also switched to c++ style casts --- xbmc/filesystem/SAPFile.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xbmc/filesystem/SAPFile.cpp b/xbmc/filesystem/SAPFile.cpp index fe7b7f6106ad5..1ca8361e8403e 100644 --- a/xbmc/filesystem/SAPFile.cpp +++ b/xbmc/filesystem/SAPFile.cpp @@ -115,12 +115,10 @@ int CSAPFile::Stat(const CURL& url, struct __stat64* buffer) ssize_t CSAPFile::Read(void *lpBuf, size_t uiBufSize) { - if (uiBufSize > SSIZE_MAX) - uiBufSize = SSIZE_MAX; if (uiBufSize > std::numeric_limits::max()) - uiBufSize = (size_t)std::numeric_limits::max(); + uiBufSize = static_cast(std::numeric_limits::max()); - return (ssize_t)m_stream.readsome((char*)lpBuf, (streamsize)uiBufSize); + return static_cast(m_stream.readsome((char*)lpBuf, static_cast(uiBufSize))); } void CSAPFile::Close() From cbf829ecbc8628bcb3210f24d93bba2a1649a08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 18:39:58 +0100 Subject: [PATCH 2/7] issue 1269604 Dead code, no changes in git blame since 2012, comment out to avoid further warnings --- xbmc/network/upnp/UPnPServer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp index e2fe2f9417012..364b31d1f44cb 100644 --- a/xbmc/network/upnp/UPnPServer.cpp +++ b/xbmc/network/upnp/UPnPServer.cpp @@ -278,9 +278,11 @@ CUPnPServer::Build(CFileItemPtr item, object->m_ObjectID = "0"; object->m_ParentID = "-1"; // root has 5 children - if (with_count) { - ((PLT_MediaContainer*)object)->m_ChildrenCount = 5; - } + + //This is dead code because of the HACK a few lines up setting with_count to false + //if (with_count) { + // ((PLT_MediaContainer*)object)->m_ChildrenCount = 5; + //} } else { goto failure; } From d7d252232f5f0311ae9c84e818b1ce6ae24d0c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 18:40:46 +0100 Subject: [PATCH 3/7] issue 1269603 unchecked return value not really an issue but might as well fix it. --- xbmc/network/httprequesthandler/HTTPWebinterfaceHandler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/network/httprequesthandler/HTTPWebinterfaceHandler.cpp b/xbmc/network/httprequesthandler/HTTPWebinterfaceHandler.cpp index 4e1e45a1c53f0..0507e51845944 100644 --- a/xbmc/network/httprequesthandler/HTTPWebinterfaceHandler.cpp +++ b/xbmc/network/httprequesthandler/HTTPWebinterfaceHandler.cpp @@ -89,8 +89,8 @@ int CHTTPWebinterfaceHandler::ResolveUrl(const std::string &url, std::string &pa if (useDefaultWebInterface) { - ADDON::CAddonMgr::Get().GetDefault(ADDON::ADDON_WEB_INTERFACE, addon); - if (addon) + + if (ADDON::CAddonMgr::Get().GetDefault(ADDON::ADDON_WEB_INTERFACE, addon) && addon) addonPath = addon->Path(); } From ff1764a767ca10f90b32074b4392de1368737ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 18:42:02 +0100 Subject: [PATCH 4/7] 1269602 bad override base class is not const --- xbmc/video/windows/GUIWindowVideoBase.cpp | 2 +- xbmc/video/windows/GUIWindowVideoBase.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp index c78b5bdaf7289..f9a968fe23224 100644 --- a/xbmc/video/windows/GUIWindowVideoBase.cpp +++ b/xbmc/video/windows/GUIWindowVideoBase.cpp @@ -276,7 +276,7 @@ void CGUIWindowVideoBase::UpdateButtons() CGUIMediaWindow::UpdateButtons(); } -void CGUIWindowVideoBase::OnInfo(CFileItem* pItem, const ADDON::ScraperPtr& scraper) +void CGUIWindowVideoBase::OnInfo(CFileItem* pItem, ADDON::ScraperPtr& scraper) { if (!pItem) return; diff --git a/xbmc/video/windows/GUIWindowVideoBase.h b/xbmc/video/windows/GUIWindowVideoBase.h index 23bc00b85824b..35269f05ea56e 100644 --- a/xbmc/video/windows/GUIWindowVideoBase.h +++ b/xbmc/video/windows/GUIWindowVideoBase.h @@ -49,7 +49,7 @@ class CGUIWindowVideoBase : public CGUIMediaWindow, public IBackgroundLoaderObse static bool HasResumeItemOffset(const CFileItem *item); void AddToDatabase(int iItem); - virtual void OnInfo(CFileItem* pItem, const ADDON::ScraperPtr& scraper); + virtual void OnInfo(CFileItem* pItem, ADDON::ScraperPtr& scraper); /*! \brief Show the resume menu for this item (if it has a resume bookmark) From 717a77083c409fd89162eba8b440aa3dbdd81241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 18:47:14 +0100 Subject: [PATCH 5/7] issue 1269601 bad override base class method is not const --- .../dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | 2 +- xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp index 610bcce56960a..cb6b479303d22 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp @@ -294,7 +294,7 @@ bool CDVDInputStreamPVRManager::SelectChannel(const CPVRChannel &channel) return false; } -bool CDVDInputStreamPVRManager::GetSelectedChannel(CPVRChannelPtr& channel) const +bool CDVDInputStreamPVRManager::GetSelectedChannel(CPVRChannelPtr& channel) { return g_PVRManager.GetCurrentChannel(channel); } diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h index 81dbdfce4afde..00a7bd8bcf7c1 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h @@ -59,7 +59,7 @@ class CDVDInputStreamPVRManager bool SelectChannel(const PVR::CPVRChannel &channel); bool NextChannel(bool preview = false); bool PrevChannel(bool preview = false); - bool GetSelectedChannel(PVR::CPVRChannelPtr& channel) const; + bool GetSelectedChannel(PVR::CPVRChannelPtr& channel); int GetTotalTime(); int GetTime(); From 01e322cf003c0bcb08f389fad2561c20f1550b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 19:00:18 +0100 Subject: [PATCH 6/7] issue 1262428 out of bounds read this code seems to have done nothing for a long time. If the first loop hit it's break condition the second loop would check the same value and break directly. Not sure what effects this might have had? --- xbmc/cores/dvdplayer/DVDCodecs/Overlay/contrib/cc_decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/contrib/cc_decoder.c b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/contrib/cc_decoder.c index 02afd175ab70e..0c9c6f0a9ea51 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/contrib/cc_decoder.c +++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/contrib/cc_decoder.c @@ -258,7 +258,7 @@ void ccmem_tobuf(cc_decoder_t *dec) if (buf->rows[i].cells[f].c != ' ') break; for (l = CC_COLUMNS-1; l>0; l--) - if (buf->rows[i].cells[f].c != ' ') + if (buf->rows[i].cells[l].c != ' ') break; for (j = f; j <= l; j++) dec->text[dec->textlen++] = buf->rows[i].cells[j].c; From 6aab73ccbb0fd6b1015a9ffb7fb5433099484afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4r=20Bj=C3=B6rklund?= Date: Fri, 13 Feb 2015 19:17:54 +0100 Subject: [PATCH 7/7] issue 1262131 ignoring bytes read Should silence a bunch of warnings without altering code logic --- xbmc/guilib/XBTFReader.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xbmc/guilib/XBTFReader.cpp b/xbmc/guilib/XBTFReader.cpp index 7dafc1ff4d9b1..e5cb0e884fceb 100644 --- a/xbmc/guilib/XBTFReader.cpp +++ b/xbmc/guilib/XBTFReader.cpp @@ -31,16 +31,16 @@ #include "PlatformDefs.h" #define READ_STR(str, size, file) \ - if (!fread(str, size, 1, file)) \ + if (1 != fread(str, size, 1, file)) \ return false; #define READ_U32(i, file) \ - if (!fread(&i, 4, 1, file)) \ + if (1 != fread(&i, 4, 1, file)) \ return false; \ i = Endian_SwapLE32(i); #define READ_U64(i, file) \ - if (!fread(&i, 8, 1, file)) \ + if (1 != fread(&i, 8, 1, file)) \ return false; \ i = Endian_SwapLE64(i);