рд╕реА рдФрд░ рд╕реА ++ рдореЗрдВ рдЦреБрдж рдХреЛ рдкреИрд░ рдореЗрдВ рдХреИрд╕реЗ рдЧреЛрд▓реА рдорд╛рд░рдирд╛ рд╣реИред рд╣рд╛рдЗрдХреБ рдУрдПрд╕ рдХреБрдХрдмреБрдХ

рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдФрд░ рд╣рд╛рдЗрдХреВ рдУрдПрд╕ рдХреЛрдб рдХреИрд╕реЗ рдорд┐рд▓реЗ рдЗрд╕рдХреА рдХрд╣рд╛рдиреА рд╡рд░реНрд╖ 2015 рддрдХ рдЬрд╛рддреА рд╣реИред рдпрд╣ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рдкреНрд░рдпреЛрдЧ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрднрд╡ рдерд╛ред рдкреНрд░рдпреЛрдЧ рдХреНрдпреЛрдВ? рдЙрд╕ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд╣реАрдВ рдерд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдПрдХ рдФрд░ рдбреЗрдврд╝ рд╕рд╛рд▓ рддрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡реИрд╕реЗ рднреА, рд╣рдорд╛рд░реА рдЯреАрдо рдХреЗ рдЙрддреНрд╕рд╛рд╣реА рд▓реЛрдЧреЛрдВ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╣рдо рд╣рд╛рдЗрдХреБ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рд╣реБрдП рдФрд░ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА, рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рджреБрд░реНрд▓рдн рдмрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рддреНрд░реБрдЯрд┐ рдЖрдзрд╛рд░ рдХреЛ рдЪреМрдбрд╝рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ред рдЕрдм рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдХреБ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд┐рддреНрд░ 1


рдкрд░рд┐рдЪрдп


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

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

cd /opt git clone https://review.haiku-os.org/buildtools git clone https://review.haiku-os.org/haiku cd ./haiku mkdir generated.x86_64; cd generated.x86_64 ../configure --distro-compatibility official -j12 \ --build-cross-tools x86_64 ../../buildtools cd ../../buildtools/jam make all cd /opt/haiku/generated.x86_64 pvs-studio-analyzer trace -- /opt/buildtools/jam/bin.linuxx86/jam \ -q -j1 @nightly-anyboot pvs-studio-analyzer analyze -l /mnt/svn/PVS-Studio.lic -r /opt/haiku \ -C x86_64-unknown-haiku-gcc -o /opt/haiku/haiku.log -j12 

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

Uninitialized рдЪрд░


V614 Uninitialized рдЪрд░ 'rval' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред fetch.c 1727

 int auto_fetch(int argc, char *argv[]) { volatile int argpos; int rval; // <= argpos = 0; if (sigsetjmp(toplevel, 1)) { if (connected) disconnect(0, NULL); if (rval > 0) // <= rval = argpos + 1; return (rval); } .... } 

рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдЪрд░ рдХреЛ рдШреЛрд╖рдгрд╛ рдкрд░ рдЖрд░рдВрднреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢реВрдиреНрдп рдорд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред рдпрджрд┐ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╡рд┐рдлрд▓ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдЪрд░ рдХрд╛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди auto_fetch рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╡рд╛рдкрд╕реА рдорд╛рди рдмрди рдЬрд╛рддрд╛ рд╣реИред

V614 Uninitialized рдкреЙрдЗрдВрдЯрд░ 'рд░реЗрд╕' рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдЖрджреЗрд╢ реи commands.cрей

 struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; char *ai_canonname; struct sockaddr *ai_addr; struct addrinfo *ai_next; }; static int sourceroute(struct addrinfo *ai, char *arg, char **cpp, int *lenp, int *protop, int *optp) { static char buf[1024 + ALIGNBYTES]; char *cp, *cp2, *lsrp, *ep; struct sockaddr_in *_sin; #ifdef INET6 struct sockaddr_in6 *sin6; struct ip6_rthdr *rth; #endif struct addrinfo hints, *res; // <= int error; char c; if (cpp == NULL || lenp == NULL) return -1; if (*cpp != NULL) { switch (res->ai_family) { // <= case AF_INET: if (*lenp < 7) return -1; break; .... } } .... } 

рдпрд╣рд╛рдБ uninitialized рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдорд╛рди рдорд╛рдорд▓рд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ res рдПрдХ uninitialized рдкреЙрдЗрдВрдЯрд░ рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ рд╣реЛрддрд╛ рд╣реИред

рд╕реНрдерд╛рдиреАрдп рдЪрд░ 'рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд' рдХреЗ рд▓рд┐рдП V506 рд╕реВрдЪрдХ рдЗрд╕ рдЪрд░ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдкреЙрдЗрдВрдЯрд░ рдЕрд╡реИрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред TextView.cpp 5596

 void BTextView::_ApplyStyleRange(...., const BFont* font, ....) { if (font != NULL) { BFont normalized = *font; _NormalizeFont(&normalized); font = &normalized; } .... fStyles->SetStyleRange(fromOffset, toOffset, fText->Length(), mode, font, color); } 

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

V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪреЗрдпрд░ .pp 27

 int8 BUnicodeChar::Type(uint32 c) { BUnicodeChar(); return u_charType(c); } 

C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдлрд┐рд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ / рдиреНрдпреБрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдХреЙрд▓ рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХрд╛ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдПрдХ рдирдИ рдЕрдирд╛рдо рд╡рд╕реНрддреБ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдРрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдерд╛рди рд╣реИрдВ:

  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ред рд╕реАрдкреА 37
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ред 49 49
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪреЗрдпрд░ .pp 58
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ред рд╕реАрдкреА 67
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ .pp 77
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдиреАрдХреЛрдбрдХреНрд░реЙрдкред 89
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ред рд╕реАрдкреА 103
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдиреАрдХреЛрдбрдХреНрд░реЙрдкред 115
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ред рд╕реАрдкреАрд╕реА 126
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ .pp 142
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪреЗрдпрд░ред 152 152
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбреЗрдХрд░ред рд╕реАрдкреАрдпреВ 163
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдиреАрдХреЛрдбрдХреНрд░реЙрдкред 186
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ .Cpp 196
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ .Cpp 206
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ред 214
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ред 222
  • V603 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 'рдпрд╣-> рдмреБрдЙрдирд┐рдХреЛрдбреЗрдХрд░ :: рдмреБрдЙрдирд┐рдХреЛрдбреЗрдЪрд░ (....)' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреВрдирд┐рдХреЛрдбрдЪрд╛рд░ред рд╕реАрдкреАрдпреВ 230

V670 ized fInternal тАЩрд╕рджрд╕реНрдп рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирдЖрд░реНрдЧреЗрдирд╛рдЗрдЬреНрдб рдХреНрд▓рд╛рд╕ рдореЗрдВрдмрд░ 'fPatternHandler' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдЙрдирдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреЗрдВрдЯрд░.рдХрдВрдк 184

 Painter::Painter() : fInternal(fPatternHandler), .... fPatternHandler(), .... { .... }; class Painter { .... private: mutable PainterAggInterface fInternal; // line 336 bool fSubpixelPrecise : 1; bool fValidClipping : 1; bool fDrawingText : 1; bool fAttached : 1; bool fIdentityTransform : 1; Transformable fTransform; float fPenSize; const BRegion* fClippingRegion; drawing_mode fDrawingMode; source_alpha fAlphaSrcMode; alpha_function fAlphaFncMode; cap_mode fLineCapMode; join_mode fLineJoinMode; float fMiterLimit; PatternHandler fPatternHandler; // line 355 mutable AGGTextRenderer fTextRenderer; }; 

рдЧрд▓рдд рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХреЛ рдЙрдирдХреЗ рд╡рд░реНрдЧ рдореЗрдВ рд╣реА рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓рд┐рдЬреНрдб fPatternHandler рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрдиреЗрдЯрд░реА рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж #define


V523 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред subr_gtaskqueue.c 191

 #define TQ_LOCK(tq) \ do { \ if ((tq)->tq_spin) \ mtx_lock_spin(&(tq)->tq_mutex); \ else \ mtx_lock(&(tq)->tq_mutex); \ } while (0) #define TQ_ASSERT_LOCKED(tq) mtx_assert(&(tq)->tq_mutex, MA_OWNED) #define TQ_UNLOCK(tq) \ do { \ if ((tq)->tq_spin) \ mtx_unlock_spin(&(tq)->tq_mutex); \ else \ mtx_unlock(&(tq)->tq_mutex); \ } while (0) void grouptask_block(struct grouptask *grouptask) { .... TQ_LOCK(queue); gtask->ta_flags |= TASK_NOENQUEUE; gtaskqueue_drain_locked(queue, gtask); TQ_UNLOCK(queue); } 

рдпрд╣ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рддрдм рддрдХ рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдЬрдм рддрдХ рдЖрдк рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддреЗ:

 void grouptask_block(struct grouptask *grouptask) { .... do { if ((queue)->tq_spin) mtx_lock(&(queue)->tq_mutex); else mtx_lock(&(queue)->tq_mutex); } while (0); gtask->ta_flags |= 0x4; gtaskqueue_drain_locked(queue, gtask); do { if ((queue)->tq_spin) mtx_unlock(&(queue)->tq_mutex); else mtx_unlock(&(queue)->tq_mutex); } while (0); } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рд╣реИ - рдЕрдЧрд░ рдФрд░ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдПрдВ рд╕рдорд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди mtx_lock_spin рдФрд░ mtx_unlock_spin рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛рдБ рд╣реИрдВ? рдореИрдХреНрд░реЛрдЬрд╝ TQ_LOCK , TQ_UNLOCK рдФрд░ grouptask_block рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реБрдЖред

рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рдХреЗрд╡рд▓ рдореНрдпреВрдЯреЗрдХреНрд╕ рдореЗрдВ рд╣реБрдИред рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:

 /* on FreeBSD these are different functions */ #define mtx_lock_spin(x) mtx_lock(x) #define mtx_unlock_spin(x) mtx_unlock(x) 

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрд╕рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВрдиреЗ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрдЧрд╣ рдореБрдЭреЗ рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рд▓рдЧреАред

рдореБрдХреНрдд рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐рдпрд╛рдБ


V575 null рдкреЙрдЗрдВрдЯрд░ рдХреЛ 'рдлреНрд░реА' рдлрдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред setmime.cpp 727

 void MimeType::_PurgeProperties() { fShort.Truncate(0); fLong.Truncate(0); fPrefApp.Truncate(0); fPrefAppSig.Truncate(0); fSniffRule.Truncate(0); delete fSmallIcon; fSmallIcon = NULL; delete fBigIcon; fBigIcon = NULL; fVectorIcon = NULL; // <= free(fVectorIcon); // <= fExtensions.clear(); fAttributes.clear(); } 

рдЖрдк рдирд┐: рд╢реБрд▓реНрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХреЛрдб рдХреА рдорд┐рд╢реНрд░рд┐рдд рд▓рд╛рдЗрдиреЗрдВ рдорд┐рд▓реАрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЛрдб рд▓реЗрдЦрдХ рдХреЛ fVectorIcon рдкреЙрдЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдХрд░рдиреА рдереА , рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА NULL рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред

V575 null рдкреЙрдЗрдВрдЯрд░ рдХреЛ 'рдлреНрд░реА' рдлрдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред Driver_settings.cpp 461

 static settings_handle * load_driver_settings_from_file(int file, const char *driverName) { .... handle = new_settings(text, driverName); if (handle != NULL) { // everything went fine! return handle; } free(handle); // <= .... } 

рдпрд╣ рдирд┐: рд╢реБрд▓реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рдВрдХреНрд╢рди рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред

V575 null рдкреЙрдЗрдВрдЯрд░ рдХреЛ 'рдлреНрд░реА' рдлрдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред PackageFileHeapWriter.cpp 166

 void* _GetBuffer() { .... void* buffer = malloc(fBufferSize); if (buffer == NULL && !fBuffers.AddItem(buffer)) { free(buffer); throw std::bad_alloc(); } return buffer; } 

рдХрд┐рд╕реА рдиреЗ рдпрд╣рд╛рдБ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреАред || рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ && рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдХреЗрд╡рд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ std :: bad_alloc () рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рд╕реНрдореГрддрд┐ рдЖрдмрдВрдЯрди ( Malloc рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░) рд╡рд┐рдлрд▓ рд░рд╣рд╛ред

рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐рдпрд╛рдВ


V611 рд╕реНрдореГрддрд┐ рдХреЛ 'рдирдП рдЯреА []' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди 'рдбрд┐рд▓реАрдЯ' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдХреЛрдб рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╢рд╛рдпрдж 'рдбрд┐рд▓реАрдЯ [] fMsg;' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред Err.cpp 65

 class Err { public: .... private: char *fMsg; ssize_t fPos; }; void Err::Unset() { delete fMsg; // <= fMsg = __null; fPos = -1; } void Err::SetMsg(const char *msg) { if (fMsg) { delete fMsg; // <= fMsg = __null; } if (msg) { fMsg = new(std::nothrow) char[strlen(msg)+1]; // <= if (fMsg) strcpy(fMsg, msg); } } 

FMsg рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рд▓реАрдЯ [] рдХреЗ рдмрдЬрд╛рдп рдореЗрдореЛрд░реА рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

V611 рдореЗрдореЛрд░реА рдХреЛ 'рдирдП' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди 'рдореБрдлреНрдд' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 'рд░реИрдкрд░рдкреВрд▓' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдкреАрдЫреЗ рдСрдкрд░реЗрд╢рди рд▓реЙрдЬрд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред vm_page.cpp 3080

 status_t vm_page_write_modified_page_range(....) { .... PageWriteWrapper* wrapperPool = new(malloc_flags(allocationFlags)) PageWriteWrapper[maxPages + 1]; PageWriteWrapper** wrappers = new(malloc_flags(allocationFlags)) PageWriteWrapper*[maxPages]; if (wrapperPool == NULL || wrappers == NULL) { free(wrapperPool); // <= free(wrappers); // <= wrapperPool = stackWrappersPool; wrappers = stackWrappers; maxPages = 1; } .... } 

рдпрд╣рд╛рдВ malloc_flags рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ, рдЬрд┐рд╕реЗ malloc рдХрд╣рддреЗ рд╣реИрдВред рдлрд┐рд░ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ-рдирдпрд╛ рдпрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред PageWriteWrapper рд╡рд░реНрдЧ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 class PageWriteWrapper { public: PageWriteWrapper(); ~PageWriteWrapper(); void SetTo(vm_page* page); bool Done(status_t result); private: vm_page* fPage; struct VMCache* fCache; bool fIsActive; }; PageWriteWrapper::PageWriteWrapper() : fIsActive(false) { } PageWriteWrapper::~PageWriteWrapper() { if (fIsActive) panic("page write wrapper going out of scope but isn't completed"); } 

рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐: рд╢реБрд▓реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдХреНрд▓рд╛рд╕рд╡реЙрдЯрд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

V611 рд╕реНрдореГрддрд┐ рдХреЛ 'рдирдП рдЯреА []' рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди 'рдбрд┐рд▓реАрдЯ' рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдХреЛрдб рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╕рдВрднрд╡рддрдГ 'рдбрд┐рд▓реАрдЯ [] fOutBuffer?' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 26, 45. PCL6Rasterizer.h 26

 class PCL6Rasterizer : public Rasterizer { public: .... ~PCL6Rasterizer() { delete fOutBuffer; fOutBuffer = NULL; } .... virtual void InitializeBuffer() { fOutBuffer = new uchar[fOutBufferSize]; } private: uchar* fOutBuffer; int fOutBufferSize; }; 

рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп [] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╣реИ ред рдХрдХреНрд╖рд╛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдЧрд▓рддреА рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛрдб рдЕрдХреНрд╕рд░ рдореЗрдореЛрд░реА рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рджреВрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ рдореЗрдореЛрд░реА рдХреЛ fOutBuffer рдкреЙрдЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдореЗрдВ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИред

V772 рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП 'рдбрд┐рд▓реАрдЯ' рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ред рд╣реИрд╢рдЯреЗрдмрд▓ред рд╕реАрдкреАрд╕реА 207

 void Hashtable::MakeEmpty(int8 keyMode,int8 valueMode) { .... for (entry = fTable[index]; entry; entry = next) { switch (keyMode) { case HASH_EMPTY_DELETE: // TODO: destructors are not called! delete (void*)entry->key; break; case HASH_EMPTY_FREE: free((void*)entry->key); break; } switch (valueMode) { case HASH_EMPTY_DELETE: // TODO: destructors are not called! delete entry->value; break; case HASH_EMPTY_FREE: free(entry->value); break; } next = entry->next; delete entry; } .... } 

рдбрд┐рд▓реАрдЯ / рдбрд┐рд▓реАрдЯ [] рдФрд░ рдореБрдлреНрдд рдХреЗ рдмреАрдЪ рдПрдХ рдЧрд▓рдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рднреА рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ void рдкреНрд░рдХрд╛рд░ (рд╢реВрдиреНрдп *) рд╕реЗ рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдп


V591 рдЧреИрд░-рд╢реВрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░реЗрдлрд░реЗрдВрд╕реЗрдмрд▓ред 228

 BReference& operator=(const BReference<const Type>& other) { fReference = other.fReference; } 

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

рдпрд╣рд╛рдБ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЕрдиреНрдп рдХреЛрдб рдЕрдВрд╢реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдореБрджреНрджреЗ рд╣реИрдВ:

  • V591 рдЧреИрд░-рд╢реВрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░реЗрдлрд░реЗрдВрд╕реЗрдмрд▓ред 233
  • V591 рдЧреИрд░-рд╢реВрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░реЗрдлрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред 239

V591 рдЧреИрд░-рд╢реВрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред main.c 1010

 void errx(int, const char *, ...) ; char * getoptionvalue(const char *name) { struct option *c; if (name == NULL) errx(1, "getoptionvalue() invoked with NULL name"); c = getoption(name); if (c != NULL) return (c->value); errx(1, "getoptionvalue() invoked with unknown option '%s'", name); /* NOTREACHED */ } 

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

рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛


V596 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред 'рдереНрд░реЛ' рдХреАрд╡рд░реНрдб рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: ParseException (FOO) рдХреЛ рдлреЗрдВрдХ рджреЗрдВ; рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ .рдХрдВрдкрдиреА 659

 size_t Response::ExtractNumber(BDataIO& stream) { BString string = ExtractString(stream); const char* end; size_t number = strtoul(string.String(), (char**)&end, 10); if (end == NULL || end[0] != '\0') ParseException("Invalid number!"); return number; } 

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

V1022 рдПрдХ рдЕрдкрд╡рд╛рдж рд╕реВрдЪрдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред gensyscallinfos.cpp 316

 int main(int argc, char** argv) { try { return Main().Run(argc, argv); } catch (Exception& exception) { // <= fprintf(stderr, "%s\n", exception.what()); return 1; } } int Run(int argc, char** argv) { .... _ParseSyscalls(argv[1]); .... } void _ParseSyscalls(const char* filename) { ifstream file(filename, ifstream::in); if (!file.is_open()) throw new IOException(string("Failed to open '") + filename + "'."); // <= .... } 

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

рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдЕрдиреНрдп рдЯреБрдХрдбрд╝реЗ:

  • V1022 рдПрдХ рдЕрдкрд╡рд╛рдж рд╕реВрдЪрдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред gensyscallinfos.cpp 347
  • V1022 рдПрдХ рдЕрдкрд╡рд╛рдж рд╕реВрдЪрдХ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред gensyscallinfos.cpp 413

рдФрдкрдЪрд╛рд░рд┐рдХ рд╕реБрд░рдХреНрд╖рд╛


V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'f_key' рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред dst_api.c 1018

 #ifndef SAFE_FREE #define SAFE_FREE(a) \ do{if(a != NULL){memset(a,0, sizeof(*a)); free(a); a=NULL;}} while (0) .... #endif DST_KEY * dst_free_key(DST_KEY *f_key) { if (f_key == NULL) return (f_key); if (f_key->dk_func && f_key->dk_func->destroy) f_key->dk_KEY_struct = f_key->dk_func->destroy(f_key->dk_KEY_struct); else { EREPORT(("dst_free_key(): Unknown key alg %d\n", f_key->dk_alg)); } if (f_key->dk_KEY_struct) { free(f_key->dk_KEY_struct); f_key->dk_KEY_struct = NULL; } if (f_key->dk_key_name) SAFE_FREE(f_key->dk_key_name); SAFE_FREE(f_key); return (NULL); } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд╕рдВрджрд┐рдЧреНрдз рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╕реБрд░рдХреНрд╖рд┐рдд рдирд┐рдЬреА рдбреЗрдЯрд╛ рд╕рдорд╛рд╢реЛрдзрди рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, SAFE_FREE рдореИрдХреНрд░реЛ, рдЬреЛ рдореЗрдорд╕реЗрдЯ , рдлреНрд░реА рдХреЙрд▓ рдФрд░ NULL рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИ, рдХреЛрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм O2 рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡реИрд╕реЗ, рдпрд╣ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ CWE-14 : рдХрдВрдкрд╛рдЗрд▓рд░ рд░рд┐рдореВрд╡рд▓ рдСрдлрд╝ рдХреЛрдб рдЯреВ рдХреНрд▓реАрдпрд░ рдмрдлрд╝рд░реНрд╕ рд╣реИред

рдпрд╣рд╛рдВ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'рдПрдиреНрдХреЛрдбреЗрдб_рдмреНрд▓реЙрдХ' рдмрдлрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред dst_api.c 446
  • V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'key_st' рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред dst_api.c 685
  • V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'in_buff' рдмрдлрд░ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред dst_api.c 916
  • V597 рд╕рдВрдХрд▓рдХ 'рдореЗрдорд╕реЗрдЯ' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'рд╕реА' рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП memset_s () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред fs_cache.c 1078

рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд░ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛


V547 рдПрдХреНрд╕рдкреНрд░реЗрд╢рди 'рд╢реЗрд╖ <0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИред Unsign рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ <0ред DwarfFile.cpp 1947

 status_t DwarfFile::_UnwindCallFrame(....) { .... uint64 remaining = lengthOffset + length - dataReader.Offset(); if (remaining < 0) return B_BAD_DATA; .... } 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд░ рдХреА рд╕реНрдкрд╖реНрдЯ рддреБрд▓рдирд╛ рдХреАред рд╢рд╛рдпрдж, рдХрд┐рд╕реА рдХреЛ рд╢реЗрд╖ рдЪрд░ рдХреА рддреБрд▓рдирд╛ рдХреЗрд╡рд▓ рдирд▓ рдХреЗ рд╕рд╛рде рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

V547 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдиреАрдВрдж ((рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд) рд╕реЗрдХрдВрдб) <0 'рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрддреА рд╣реИред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди рдХрднреА рдирд╣реАрдВ рд╣реИ <0ред Misc.cpp 56

 status_t snooze(bigtime_t amount) { if (amount <= 0) return B_OK; int64 secs = amount / 1000000LL; int64 usecs = amount % 1000000LL; if (secs > 0) { if (sleep((unsigned)secs) < 0) // <= return errno; } if (usecs > 0) { if (usleep((useconds_t)usecs) < 0) return errno; } return B_OK; } 

рддреНрд░реБрдЯрд┐ рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ рдиреАрдВрдж рдФрд░ рдмреЗрдХрд╛рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 extern unsigned int sleep (unsigned int __seconds); extern int usleep (__useconds_t __useconds); 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрд▓реАрдк рдлрд╝рдВрдХреНрд╢рди рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрд▓рдд рд╣реИред

рдЦрддрд░рдирд╛рдХ рд╕рдВрдХреЗрдд


V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'рдбрд┐рд╡рд╛рдЗрд╕' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред xhci.cpp 1572

 void XHCI::FreeDevice(Device *device) { uint8 slot = fPortSlots[device->HubPort()]; TRACE("FreeDevice() port %d slot %d\n", device->HubPort(), slot); // Delete the device first, so it cleans up its pipes and tells us // what we need to destroy before we tear down our internal state. delete device; DisableSlot(slot); fDcba->baseAddress[slot] = 0; fPortSlots[device->HubPort()] = 0; // <= delete_area(fDevices[slot].trb_area); delete_area(fDevices[slot].input_ctx_area); delete_area(fDevices[slot].device_ctx_area); memset(&fDevices[slot], 0, sizeof(xhci_device)); fDevices[slot].state = XHCI_STATE_DISABLED; } 

рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ FreeDevice рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдРрд╕рд╛ рдХреЛрдб рдмреЗрд╣рдж рдЦрддрд░рдирд╛рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдИ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'рд╕реЗрд▓реНрдл' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред TranslatorRoster.cpp 884
  • V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред RemoteView.cpp 1269
  • V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'bs' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред mkntfs.c 4291
  • V774 рдореЗрдореЛрд░реА рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж 'bs' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред mkntfs.c 4308
  • V774 'рдЕрд▓' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрдореЛрд░реА рдХреЗ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред inode.c 1155

V522 рдирд▓ рд╕реВрдЪрдХ 'рдбреЗрдЯрд╛' рдХреА рдбреЗрд░реЗрдлреЗрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдХреЛ 'malo_hal_send_helper' рдлрдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреАрд╕рд░реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 350, 394. if_malohal.c 350

 static int malo_hal_fwload_helper(struct malo_hal *mh, char *helper) { .... /* tell the card we're done and... */ error = malo_hal_send_helper(mh, 0, NULL, 0, MALO_NOWAIT); // <= NULL .... } static int malo_hal_send_helper(struct malo_hal *mh, int bsize, const void *data, size_t dsize, int waitfor) { mh->mh_cmdbuf[0] = htole16(MALO_HOSTCMD_CODE_DNLD); mh->mh_cmdbuf[1] = htole16(bsize); memcpy(&mh->mh_cmdbuf[4], data , dsize); // <= data .... } 

Interprocedural рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬрдм NULL рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯрд░ рдЕрдВрддрддрдГ рдореЗрдорд╕реАрдкреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ dereferenced рдЬрд╛рддрд╛ рд╣реИред

V773 'inputFileFile' рдкреЙрдЗрдВрдЯрд░ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред command_recompress.cpp 119

 int command_recompress(int argc, const char* const* argv) { .... BFile* inputFileFile = new BFile; error = inputFileFile->SetTo(inputPackageFileName, O_RDONLY); if (error != B_OK) { fprintf(stderr, "Error: Failed to open input file \"%s\": %s\n", inputPackageFileName, strerror(error)); return 1; } inputFile = inputFileFile; .... } 

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

V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'fReply' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рд▓рд╛рдЗрдиреЗрдВ: 49, 52.

 RPC::CallbackReply* ReplyBuilder::Reply() { fReply->Stream().InsertUInt(fStatusPosition, _HaikuErrorToNFS4(fStatus)); fReply->Stream().InsertUInt(fOpCountPosition, fOpCount); if (fReply == NULL || fReply->Stream().Error() == B_OK) return fReply; else return NULL; } 

рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА рд╣реИред V595 рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ fReply рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЦрддрд░рдирд╛рдХ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред

V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'mq' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 782, 786. oce_queue.c 782

 static void oce_mq_free(struct oce_mq *mq) { POCE_SOFTC sc = (POCE_SOFTC) mq->parent; struct oce_mbx mbx; struct mbx_destroy_common_mq *fwcmd; if (!mq) return; .... } 

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

рд╡рд┐рд╡рд┐рдз


V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 101

 static void dump_acpi_namespace(acpi_ns_device_info *device, char *root, int indenting) { char output[320]; char tabs[255] = ""; .... strlcat(tabs, "|--- ", sizeof(tabs)); .... while (....) { uint32 type = device->acpi->get_object_type(result); snprintf(output, sizeof(output), "%s%s", tabs, result + depth); switch(type) { case ACPI_TYPE_INTEGER: strncat(output, " INTEGER", sizeof(output)); break; case ACPI_TYPE_STRING: strncat(output, " STRING", sizeof(output)); break; .... } .... } .... } 

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

рдпрд╣рд╛рдБ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдЦрддрд░рдирд╛рдХ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:

  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 104
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 107
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 110
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 113
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 118
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 119
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 120
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 123
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 126
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 129
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 132
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 135
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 138
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 141
  • V645 'strncat' рдлрдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ 'рдЖрдЙрдЯрдкреБрдЯ' рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред NamespaceDump.cpp 144
  • V645 'strncat' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ 'features_string' рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред VirtioDevice.cpp 283
  • V645 'strncat' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ 'features_string' рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред VirtioDevice.cpp 284
  • V645 'strncat' рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ 'features_string' рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдорд╛ рдореЗрдВ рдмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрдИ рд╡рд░реНрдг рдЗрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред VirtioDevice.cpp 285

V792 рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд 'SetDecoratorSettings' рдлрд╝рдВрдХреНрд╢рди | рд╡рд╛рдо рдСрдкрд░реЗрдВрдб рдХреЗ рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╢рд╛рдпрдж, '' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред DesktopListener.cpp 324

 class DesktopListener : public DoublyLinkedListLinkImpl<DesktopListener> { public: .... virtual bool SetDecoratorSettings(Window* window, const BMessage& settings) = 0; .... }; bool DesktopObservable::SetDecoratorSettings(Window* window, const BMessage& settings) { if (fWeAreInvoking) return false; InvokeGuard invokeGuard(fWeAreInvoking); bool changed = false; for (DesktopListener* listener = fDesktopListenerList.First(); listener != NULL; listener = fDesktopListenerList.GetNext(listener)) changed = changed | listener->SetDecoratorSettings(window, settings); return changed; } 

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, '|' рдФрд░ '||' рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдардЧ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рддреНрд░реБрдЯрд┐ SetDecoratorSettings рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЙрд▓ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

V627 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред Sizeof () рдХрд╛ рддрд░реНрдХ рд╡рд╣ рдореИрдХреНрд░реЛ рд╣реИ рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рддрдХ рдлреИрд▓рддрд╛ рд╣реИред device.c 72

 #define PCI_line_size 0x0c /* (1 byte) cache line size in 32 bit words */ static status_t wb840_open(const char* name, uint32 flags, void** cookie) { .... data->wb_cachesize = gPci->read_pci_config(data->pciInfo->bus, data->pciInfo->device, data->pciInfo->function, PCI_line_size, sizeof(PCI_line_size)) & 0xff; .... } 

рдЖрдХрд╛рд░ рдСрдкрд░реЗрдЯрд░ рдХреЛ 0x0c рдорд╛рди рдкрд╛рд╕ рдХрд░рдирд╛ рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рд▓рдЧрддрд╛ рд╣реИред рд╢рд╛рдпрдж, рд▓реЗрдЦрдХ рдХреЛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ ред

V562 18: 0x12 == IsProfessionalSpdif () рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдмреВрд▓ рдЯрд╛рдЗрдк рдорд╛рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реИред CEchoGals_mixer.cpp 533

 typedef bool BOOL; virtual BOOL IsProfessionalSpdif() { ... } #define ECHOSTATUS_DSP_DEAD 0x12 ECHOSTATUS CEchoGals::ProcessMixerFunction(....) { .... if ( ECHOSTATUS_DSP_DEAD == IsProfessionalSpdif() ) // <= { Status = ECHOSTATUS_DSP_DEAD; } else { pMixerFunction->Data.bProfSpdif = IsProfessionalSpdif(); } .... } 

IsProfessionalSpdif рдлрд╝рдВрдХреНрд╢рди рдмреВрд▓ рдкреНрд░рдХрд╛рд░ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ 0x12 рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИред

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


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

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

рдХреНрдпрд╛ рдЖрдк рд╣рд╛рдЗрдХреБ рдХреЛ рдЖрдЬрдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╡рд╛рд▓ рд╣реИрдВ? рд╣рд╛рдЗрдХреБ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдкрдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдЪреИрдирд▓ рдкрд░ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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


All Articles