diff options
author | jonasno <jonasno@users.sourceforge.net> | 2010-01-18 18:01:32 +0300 |
---|---|---|
committer | jonasno <jonasno@users.sourceforge.net> | 2010-01-18 18:01:32 +0300 |
commit | 6a31a3854b5b450d9fe03f745f7b143bc10a9298 (patch) | |
tree | e6de368c231a50333784497e7b400f7483c5429f /src/apps/mplayerc/PlayerCaptureDialog.cpp | |
parent | 0907b8ffb47c74ba7f09c6243c3df4cd5567f605 (diff) |
Fixed memory leaks
Fixed possible buffer overflows
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1527 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/apps/mplayerc/PlayerCaptureDialog.cpp')
-rw-r--r-- | src/apps/mplayerc/PlayerCaptureDialog.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/apps/mplayerc/PlayerCaptureDialog.cpp b/src/apps/mplayerc/PlayerCaptureDialog.cpp index 2c8a91f3e..9a360e01c 100644 --- a/src/apps/mplayerc/PlayerCaptureDialog.cpp +++ b/src/apps/mplayerc/PlayerCaptureDialog.cpp @@ -47,7 +47,11 @@ static bool LoadMediaType(CStringW DisplayName, AM_MEDIA_TYPE** ppmt) UINT len;
if(AfxGetApp()->GetProfileBinary(_T("Capture\\") + CString(DisplayName), _T("MediaType"), &pData, &len))
{
- if(len != sizeof(AM_MEDIA_TYPE)) return(fRet);
+ if ( len != sizeof(AM_MEDIA_TYPE) )
+ {
+ delete [] pData;
+ return(fRet);
+ }
memcpy(*ppmt, pData, len);
delete [] pData;
@@ -58,7 +62,11 @@ static bool LoadMediaType(CStringW DisplayName, AM_MEDIA_TYPE** ppmt) if(AfxGetApp()->GetProfileBinary(_T("Capture\\") + CString(DisplayName), _T("Format"), &pData, &len))
{
- if(!len) return(fRet);
+ if ( !len )
+ {
+ delete [] pData;
+ return(fRet);
+ }
(*ppmt)->cbFormat = len;
(*ppmt)->pbFormat = (BYTE*)CoTaskMemAlloc(len);
memcpy((*ppmt)->pbFormat, pData, len);
|