VirtualDub рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ, VirtualDub
рдмрд╕ рдЕрдм, рдореИрдВ рдмреИрда рдЧрдпрд╛ рдФрд░ PVS-Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ VirtualDub рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХреАред рдЪреБрдирд╛рд╡ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдерд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ / рдбрдмрд▓-рдЪреЗрдХ рдХрд░реЗрдВред рдФрд░ рдХрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЧрд▓рддрд┐рдпрд╛рдБ рд╣рд░ рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИрдВред рд╣рдордиреЗ 2011 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА VirtualDub рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рддрдм рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ 2 рд╕рд╛рд▓ рдмрд╛рдж рдЪреАрдЬреЗрдВ рдХреИрд╕реА рд╣реИрдВред



рдореИрдВрдиреЗ VirtualDub рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ VirtualDub-1.10.3-src.7z рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг 5.10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯрд╛ рдмрд┐рддрд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛ред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рд╕рд╣реА рдХреЛрдб рдХреЛ рд╕рдВрджрд┐рдЧреНрдз рдорд╛рди рд╕рдХрддрд╛ рдерд╛ред рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд░реНрдЪреБрдЕрд▓рдбрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдо рд╣рдореЗрд╢рд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рд╕реЗ рдорд┐рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрдВрдЬреАрдХрд░рдг рдХреБрдВрдЬреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╡рд░реА рд▓реА рд╕реЗ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ VirtualDub рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдмрд╣реБрдд рд╣реА рджрд░реНрджрдирд╛рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдерд╛ ред рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдФрд░ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдЧ рд╣рд░ рдЬрдЧрд╣ рд╣реИрдВ ред рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЙрди рд▓рд╛рднреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдЬреЛ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдпрд╣ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛ рджреЗрдЧрд╛ред рдпрд╣ рдорд╣рд╛рди рд╣реИред

рдмреЗрд╢рдХ, рд╡рди-рдЯрд╛рдЗрдо рдЪреЗрдХ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реИрдВред рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рди рдХрд░рдирд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рджрд┐рд▓рдЪрд╕реНрдк рдиреЛрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рд▓рд┐рдпреЛ рдЯреЙрд▓реНрд╕реНрдЯреЙрдп рдФрд░ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд▓реЗрдЦ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рди рдХрд┐ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкрджреНрдзрддрд┐ред рдЪрд▓рд┐рдП рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ VirtualDub рдореЗрдВ рдХреНрдпрд╛ рдирдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдорд┐рд▓рд╛ред

рдЖрднрд╛рд╕реА рд╡рд┐рдзреНрд╡рдВрд╕рдХ


C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдореЗрдВ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╣реА рд╡рд┐рдирд╛рд╢ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдЖрднрд╛рд╕реА рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

VirtualDub рдореЗрдВ VDDialogBaseW32 рд╡рд░реНрдЧ рд╣реИ:
class VDDialogBaseW32 { .... ~VDDialogBaseW32(); .... virtual INT_PTR DlgProc(....) = 0; virtual bool PreNCDestroy(); .... } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рдЖрднрд╛рд╕реА рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЙрд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VDDialogAudioFilterFormatConvConfig:
 class VDDialogAudioFilterFormatConvConfig : public VDDialogBaseW32 { .... }; 

рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдирд╛рд╢ рддреНрд░реБрдЯрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
 INT_PTR CALLBACK VDDialogBaseW32::StaticDlgProc(....) { VDDialogBaseW32 *pThis = (VDDialogBaseW32 *)GetWindowLongPtr(hwnd, DWLP_USER); .... delete pThis; .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдЪреЗрддрд╛рд╡рдиреА: V599 рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рдЖрднрд╛рд╕реА рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ 'VDDialogBaseW32' рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрддреЗ рд╣реИрдВред VirtualDub gui.cpp 997

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдРрд╕реЗ рд╡рд┐рд▓реЛрдкрди рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓реЗрдЧрд╛ред

рдПрдХ рд╕рдорд╛рди рджреБрд░реНрднрд╛рдЧреНрдп VDMPEGAudioPolyphaseFilter рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИред

рдЕрд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ


рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рд╣реИрдВред рдПрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдлрд┐рд╕рд▓рди рд╡рд┐рд╖рдп рдкрд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдРрд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
 void AVIVideoGIFOutputStream::write(....) { { .... for(int i=0; i<palsize; ++i) dict[i].mPrevAndLastChar = (-1 << 16) + i; .... } 

рдпрд╣ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ 10 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реИрд╕реЗ рднреА, рдпрд╣рд╛рдВ рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдирд┐рдкрдЯ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдирдХ рдХрд╣рддреЗ рд╣реИрдВ:

рдкрд╛рд░реА рд╕рдВрдЪрд╛рд▓рдХ << рдФрд░ >> рд╕рдореВрд╣ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВред

рдкрд╛рд░реА-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ << рдпреЛрдЧрд╛рддреНрдордХ-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

рдкрд╛рд░реА-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ >> рдпреЛрдЧрд╛рддреНрдордХ-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

рдСрдкрд░реЗрдВрдб рдЕрднрд┐рдиреНрди рдпрд╛ рдЕрдирдХреИрдкреНрдб рдПрдиреНрдпреВрдорд░реЗрд╢рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░рд▓ рдкреНрд░рдореЛрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

1. рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдЪрд╛рд░рд┐рдд рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдпрджрд┐ рд╕рд╣реА рдСрдкрд░реЗрдВрдб рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдпрд╛ рдкрджреЛрдиреНрдирдд рдХрд┐рдП рдЧрдП рдмрд╛рдПрдВ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдореЗрдВ рд▓рдВрдмрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

2. E1 рдХрд╛ рдорд╛рди << E2 E1 рдмрд╛рдПрдВ-рд╢рд┐рдлреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ E2 рд╕рд╛ рд╕реНрдерд╛рди рд╣реИ; рдЦрд╛рд▓реА рдмрд┐рдЯреНрд╕ рд╢реВрдиреНрдп рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдорд╛рди E1 * 2 ^ E2 рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпреЛрдЧреНрдп рд╕реЗ рдПрдХ рд╕реЗ рдХрдо moduloред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рдФрд░ E1 * 2 ^ E2 рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рддреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рд╣реИ; рдЕрдиреНрдпрдерд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред

3. E1 >> E2 рдХрд╛ рдорд╛рди E1 рд╕рд╣реА-рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд E2 рдмрд┐рдЯ рд╕реНрдерд┐рддрд┐ рд╣реИред рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ рдпрд╛ рдпрджрд┐ E1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдорд╛рди E1 / 2 ^ E2 рдХреЗ рднрд╛рдЧрдлрд▓ рдХрд╛ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИ ред рдпрджрд┐ рдИ 1 рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореВрд▓реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред

рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рднрд╛рдЧреНрдпред рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рдВрдХрд▓рдХ рдпрд╛ рдЕрдиреНрдп рдХреБрдВрдЬрд┐рдпреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдкрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рд╢рд┐рдлреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ рдФрд░ рдпрд╣ рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЖрдк рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ " рдХрд╛рдВрдЯрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ, рдкрд╛рдиреА рдореЗрдВ рдирд╣реАрдВ рдЙрддрд░реЗрдВред рднрд╛рдЧ рддреАрди ред"

рдпрд╣рд╛рдВ рдЙрди рдЬрдЧрд╣реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ рдЬрд╣рд╛рдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд╡рд░реНрдЪреБрдЕрд▓рдбрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╛ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдерд╛ред

рд╢реБрджреНрдзрд┐рдкрддреНрд░


 static ModuleInfo *CrashGetModules(void *&ptr) { .... while(*pszHeap++); if (pszHeap[-1]=='.') period = pszHeap-1; .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V529 Odd рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо ';) 'рдЬрдмрдХрд┐' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рджред VirtualDub рдХреНрд░реИрд╢ред рдХреНрд░реИрдХ 462

'рдЬрдмрдХрд┐' рдХреЗ рдмрд╛рдж рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣рд╛рдВ рдпрд╛ рддреЛ рддреНрд░реБрдЯрд┐ рдпрд╛ рдХреЛрдб рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд▓рддреА рд╣реИред рд▓реВрдк "рдЬрдмрдХрд┐ (* pszHeap ++);" рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЪрд░ 'pszHeap' рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рдХреЗ рдмрд╛рдж рдореЗрдореЛрд░реА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред "If (pszHeap [-1] == ')'" рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдкрддрд╛ pszHeap [-1] рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИред

рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рдФрд░ рдЯрд╛рдЗрдкреЛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 void VDBackfaceService::Execute(...., char *s) { .... if (*s == '"') { while(*s && *s != '"') ++s; } else { .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: рд╡реА 637 рджреЛ рд╡рд┐рдкрд░реАрдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рджреВрд╕рд░реА рд╢рд░реНрдд рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрди: 183, 184ред VirtualDub backface.cpp 183

рдЗрд╕ рдХреЛрдб рдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореБрдЭреЗ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдерд┐рддрд┐ (* s && * s! = '' ') рддреБрд░рдВрдд рдЧрд▓рдд рд╣реИред рд╢рд╛рдпрдж рдХреЛрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
 if (*s == '"') { ++s; while(*s && *s != '"') ++s; } 

рдирдпрд╛ рдСрдкрд░реЗрдЯрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬрдм рд╕реНрдореГрддрд┐ рдЖрдмрдВрдЯрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ, рдПрдХ рдЕрдХреНрд╕рд░ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 int *p = new int[10]; if (!p) return false; 

рдпрджрд┐ рд╕реНрдореГрддрд┐ рдЖрдмрдВрдЯрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ C ++ рднрд╛рд╖рд╛ рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрдзреБрдирд┐рдХ рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЛ рдЕрдкрд╡рд╛рдж рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 'рдирдпрд╛' рдСрдкрд░реЗрдЯрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдорд╛рдорд▓реЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдЧрд░ (рдкреА) рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдРрд╕рд╛ рдХреЛрдб рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪред рдЪрд┐рдВрддрд╛ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреБрд░рд╛рдиреЗ рдХреЛрдб рд╕реЗ рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред VirtualDub рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 void HexEditor::Find(HWND hwndParent) { .... int *next = new int[nFindLength+1]; char *searchbuffer = new char[65536]; char *revstring = new char[nFindLength]; .... if (!next || !searchbuffer || !revstring) { delete[] next; delete[] searchbuffer; delete[] revstring; return; } .... } 

рдкреАрд╡реА-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V668 'рдиреНрдпреВ' рдХреЗ рдЦрд┐рд▓рд╛рдл 'рдЕрдЧрд▓реЗ' рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рдереАред рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред VirtualDub hexviewer.cpp 2012

рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ "char * revstring = new char [nFindLength];", рддреЛ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рд▓реАрдЯ [] рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдпрд╣рд╛рдВ , рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рд╡рд░реНрдЪреБрдЕрд▓рдбреНрд░рдм рдореЗрдВ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдирд╖реНрдЯ рд╡рд╕реНрддреБ рд╕реЗ рд▓рд┐рдВрдХ


 vdlist_iterator& operator--(int) { vdlist_iterator tmp(*this); mp = mp->mListNodePrev; return tmp; } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: рд╡реА 558 рдлрд╝рдВрдХреНрд╢рди рдЕрд╕реНрдерд╛рдпреА рд╕реНрдерд╛рдиреАрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ: tmpред VirtualDub vdstl.h 460

рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд╛рдиреАрдп 'tmp' рд╡рд╕реНрддреБ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ред

рд╡реИрд╕реЗ, рдкрд╛рд╕ рдореЗрдВ рд╕реНрдерд┐рдд ++ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ


рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ, рдЕрдХреНрд╕рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ рдЬрдм рд╕реВрдЪрдХ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА, рдЗрд╕рдХреА рддреБрд▓рдирд╛ NULL рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ NULL рдкреЙрдЗрдВрдЯрд░ рдХреА рд╕рдорд╛рдирддрд╛ рдПрдХ рдЖрдХрд╕реНрдорд┐рдХ рджреБрд░реНрд▓рдн рд╕реНрдерд┐рддрд┐ рд╣реИред рдпреЗ рдХрдорд┐рдпрд╛рдВ VirtualDub рдХреЛрдб рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 LRESULT YUVCodec::DecompressGetFormat(BITMAPINFO *lpbiInput, BITMAPINFO *lpbiOutput) { BITMAPINFOHEADER *bmihInput = &lpbiInput->bmiHeader; BITMAPINFOHEADER *bmihOutput = &lpbiOutput->bmiHeader; LRESULT res; if (!lpbiOutput) return sizeof(BITMAPINFOHEADER); .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V595 'lpbiOutput' рдкреЙрдЗрдВрдЯрд░ рдХреЛ nullrr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 82, 85. VirtualDub yuvcodec.cpp 82

рд╢реБрд░реБрдЖрдд рдореЗрдВ, lpbiOutput рдкреЙрдЗрдВрдЯрд░ рдХреЛ dereferenced рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ: "рдЕрдЧрд░ (! LpbiOutput)"ред рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖрдо рддреМрд░ рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреА рд╣реИрдВред рдирдпрд╛ рдХреЛрдб рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдВрдЪ рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
 LRESULT YUVCodec::DecompressGetFormat(BITMAPINFO *lpbiInput, BITMAPINFO *lpbiOutput) { if (!lpbiOutput) return sizeof(BITMAPINFOHEADER); BITMAPINFOHEADER *bmihInput = &lpbiInput->bmiHeader; BITMAPINFOHEADER *bmihOutput = &lpbiOutput->bmiHeader; LRESULT res; .... } 

рдЕрдиреНрдп рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдХ V595 рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ ред

HRESULT рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


 VDPosition AVIReadTunnelStream::TimeToPosition(VDTime timeInUs) { AVISTREAMINFO asi; if (AVIStreamInfo(pas, &asi, sizeof asi)) return 0; return VDRoundToInt64(timeInUs * (double)asi.dwRate / (double)asi.dwScale * (1.0 / 1000000.0)); } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V545 HRFULT рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рдХреЗ рд▓рд┐рдП 'if' рдСрдкрд░реЗрдЯрд░ рдЧрд▓рдд рд╣реИ, рддреЛ AVIStreamInfoA (pas, рдФрд░ asi, sizeof asi)ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп SUCCEEDED рдпрд╛ FAILED рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред VirtualDub avireadhandlertunnelw32.cpp 230

AVIStreamInfo () рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд░ HRESULT рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ 'рдмреВрд▓' рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред HRESULT рдХреЗ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реИ ред HRESULT рдорд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "WinError.h" рдореЗрдВ рдШреЛрд╖рд┐рдд SUCCEEDED рдпрд╛ FAILED рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдпреЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
 #define FAILED(hr) (((HRESULT)(hr)) < 0) #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) 

рд╕рд╣реА рдХреЛрдб рд╣реИ:
 if (FAILED(AVIStreamInfo(pas, &asi, sizeof asi))) 

PVS-Studio рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ:

рдореИрдЬрд┐рдХ рдирдВрдмрд░


рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдЧрд┐рдирддреЗ рд╕рдордп рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 bool VDOpenGLBinding::Attach(....) { .... if (!memcmp(start, "GL_EXT_blend_subtract", 20)) .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V512 'рдореЗрдордХреИрдВрдк' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рд╕реЗ рдмрдлрд░ '' GL_EXT_blend_subtract '' рдХрд╛ рдкреНрд░рд╡рд╛рд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд░рд┐рдЬрд╝рд╛ рдУрдкреЗрдВрдЧрд▓ред рд╕реАрдкреА 393

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ "GL_EXT_blend_subtract" 20 рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 21 рдЕрдХреНрд╖рд░ рд╣реИрдВред рддреНрд░реБрдЯрд┐ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХреЛрдИ рдЯрдХрд░рд╛рд╡ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрд╛рджреВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдЧрд┐рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 #define LiteralStrLen(S) (sizeof(S) / sizeof(S[0]) - 1) 

C ++ рдореЗрдВ, рдЖрдк рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 template <typename T, size_t N> char (&ArraySizeHelper(T (&array)[N]))[N]; template <typename T, size_t N> size_t LiteralStrLen(T (&array)[N]) { return sizeof(ArraySizeHelper(array)) - 1; } 

рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЧрд▓рддреА рд╕реЗ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреЙрдЗрдВрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддрдХрдиреАрдХ " рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдмрдирд╛рдо рдХреНрд░реЛрдорд┐рдпрдо " рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдкреВрд░реНрдг рдкрде


 VDDbgHelpDynamicLoaderW32::VDDbgHelpDynamicLoaderW32() { hmodDbgHelp = LoadLibrary( "c:\\program files\\debugging tools for windows\\dbghelp"); if (!hmodDbgHelp) { hmodDbgHelp = LoadLibrary("c:\\program files (x86)\\...... .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V631 'LoadLibraryA' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдПрдХ рдЦрд░рд╛рдм рд╢реИрд▓реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред VirtualDub рд▓реАрдХред рд╕реАрдкреАрд╕реА 67, 69

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпреЛрдВ рдЦрд░рд╛рдм рд╣реИред рдмреЗрд╢рдХ, рдХреЛрдб рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреА, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рд╕рд╣реА рд░рд╛рд╕реНрддрд╛ рдорд┐рд▓рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдЕрдорд╛рдиреНрдп рддрд░реНрдХ


 sint64 rva; void tool_lookup(....) { .... printf("%08I64x %s + %x [%s:%d]\n", addr, sym->name, addr-sym->rva, fn, line); .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: V576 рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдкред 'рдкреНрд░рд┐рдВрдЯрдл' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪреМрдереЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рддрд░реНрдХ 32-рдмрд┐рдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдЕрд╕реБрдХрд╛ рд▓реБрдХрдЕрдкред рд╕реАрд╕реА 56

рдЪрд░ 'rva' рдПрдХ 64-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 8 рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Printf () рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВ ред рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЬрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЪрд░ 'rva' рдХреЛ 32-рдмрд┐рдЯ рдЪрд░ ("% x") рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рддреНрд░реБрдЯрд┐ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧреА рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рддрд░реНрдХреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдФрд░ рдордВрдЪ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдкрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Win64 рдореЗрдВ, рд╕рднреА рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд╣рд▓реЗ 64-рдмрд┐рдЯ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЪрд░ рдЬрд░реВрд░рдд рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕реНрдЯреИрдХ рдкрд░ рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ 'rva' INT_MAX рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди рд╡реИрд╕реЗ рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдЫрд╛рдкрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпрд╣рд╛рдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ:

рдЧрд▓рдд рддреБрд▓рдирд╛


 void VDVideoCompressorVCM::GetState(vdfastvector<uint8>& data) { DWORD res; .... res = ICGetState(hic, data.data(), size); .... if (res < 0) throw MyICError("Video compression", res); } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: V547 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'рд░реЗрд╕ <0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рдХрднреА рдирд╣реАрдВ рд╣реИ <0ред Riza w32videocodecpack.cpp 828

рдЪрд░ 'рд░реЗрд╕' рдореЗрдВ рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд DWORD рдкреНрд░рдХрд╛рд░ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рд░реЗрд╕ <0" рд╣рдореЗрд╢рд╛ рдореВрд▓реНрдп 'рдЭреВрдареА' рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред

рдПрдХ рд╕рдорд╛рди рдЬрд╛рдБрдЪ рдпрд╣рд╛рдБ рд╣реИ: w32videocodec.cpp 284ред

рдПрдХ рдФрд░ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
 #define ICERR_CUSTOM -400L static const char *GetVCMErrorString(uint32 icErr) { .... if (icErr <= ICERR_CUSTOM) err = "A codec-specific error occurred."; .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: V605 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: icErr <= - 400Lред рдПрдХ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдореВрд▓реНрдп рд╕рдВрдЦреНрдпрд╛ -400 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣реИред system error_win32.cpp 54

рдЪрд░ 'icErr' 'рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд' рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддреБрд▓рдирд╛ рд╕реЗ рдкрд╣рд▓реЗ, '-400' рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 'рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд' рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдорд╛рди '-400' 4294966896 рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рддреБрд▓рдирд╛ (icErr <= -400) (icErr <= 4294966896) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рд╡рд┐рд╡рд┐рдз рд╡рд┐рдЪрд┐рддреНрд░


 void AVIOutputFile::finalize() { .... if (stream.mChunkCount && hdr.dwScale && stream.mChunkCount) .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V501 рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ 'stream.mChunkCount' рд╣реИрдВред VirtualDub avioutputfile.cpp 761

рдЪрд░ 'stream.mChunkCount' рдХреЛ рджреЛ рдмрд╛рд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЬрд╛рдБрдЪ рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рд╣реИ рдпрд╛ рдХреБрдЫ рдФрд░ рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рд╣реИред
 void VDVideoCompressorVCM::Start(const void *inputFormat, uint32 inputFormatSize, const void *outputFormat, uint32 outputFormatSize, const VDFraction& frameRate, VDPosition frameCount) { this->hic = hic; .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢: V570 'рдЗрд╕-> hic' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рд╣реА рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд░рд┐рдЬрд╛ w32videocodecpack.cpp 253
 void VDDialogAudioConversionW32::RecomputeBandwidth() { .... if (IsDlgButtonChecked(mhdlg, IDC_PRECISION_NOCHANGE)) { if (mbSourcePrecisionKnown && mbSource16Bit) bps *= 2; else bps = 0; } if (IsDlgButtonChecked(mhdlg, IDC_PRECISION_16BIT)) bps *= 2; .... } 

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: V646 рдЖрд╡реЗрджрди рдХреЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ 'рдФрд░' рдХреАрд╡рд░реНрдб рдЧрд╛рдпрдм рд╣реИред VirtualDub optdlg.cpp 120

рдХреЛрдб рдареАрдХ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рд╢рд╛рдпрдж рдХреАрд╡рд░реНрдб 'рдФрд░' рднреВрд▓ рдЧрдпрд╛ рд╣реИред
 bool VDCaptureDriverScreen::Init(VDGUIHandle hParent) { .... mbAudioHardwarePresent = false; mbAudioHardwarePresent = true; .... } 

PVS-Studio рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕рдВрджреЗрд╢: V519 'mbAudioHardwarePresent' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 274, 275. VDCapture cap_screen.cpp 275

рдирд┐рд╖реНрдХрд░реНрд╖


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдмрд╛рд░ рдЪрд▓рдиреЗ рдХреЗ рд╕рд╛рде рднреА, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕рдВрдХрд▓рдХ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА (рдЪреЗрддрд╛рд╡рдиреА) рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИред рдЙрдирдХрд╛ рдирд┐рд░рдВрддрд░ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдПрдХ рддрд░рд╣ рдХреЗ рдРрдб-рдСрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрдкрдХреЛ рдирдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реЗрдВрдЧреАред

Source: https://habr.com/ru/post/In198060/


All Articles