
ææ°ã®ã³ã³ãã¥ãŒã¿ãŒæè¡ãæè¡ããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³-ãããã¯ãã¹ãŠãããŸããŸãªç§åŠç ç©¶ã®å®æœã倧å¹
ã«ä¿é²ããã³å éããŸãã å€ãã®å Žåãã³ã³ãã¥ãŒã¿ãŒã·ãã¥ã¬ãŒã·ã§ã³ãå€ãã®çè«ããã¹ãããå¯äžã®æ¹æ³ã§ãã ç§åŠãœãããŠã§ã¢ã«ã¯ç¬èªã®ç¹åŸŽããããŸãã ããšãã°ããã®ãããªãœãããŠã§ã¢ã¯å€ãã®å Žåéåžžã«åŸ¹åºçãªãã¹ãã®å¯Ÿè±¡ãšãªããŸãããææžåã¯äžååã§ãã ãããããœãããŠã§ã¢ã¯äººã«ãã£ãŠæžãããŠããã人ã¯ééããç¯ããŸãã ç§åŠããã°ã©ã ã®èª€ãã¯ãç ç©¶å
šäœã«çåãæããããå¯èœæ§ããããŸãã ãã®èšäºã§ã¯ãNCBI Genome WorkbenchãœãããŠã§ã¢ããã±ãŒãžã®ã³ãŒãã§èŠã€ãã£ãå€ãã®åé¡ããªã¹ãããŸãã
ã¯ããã«
NCBI Genome Workbenchã¯ãéºäŒããŒã¿ãç ç©¶ããã³åæããããã®å€æ°ã®ããŒã«ã»ãããç ç©¶è
ã«æäŸããŸãã ãŠãŒã¶ãŒã¯ãNCBIïŒåœç«ãã€ãªãã¯ãããžãŒæ
å ±ã»ã³ã¿ãŒïŒããŒã¿ããŒã¹ãŸãã¯èªåã®å人ããŒã¿ãå«ãããã€ãã®ãœãŒã¹ããã®ããŒã¿ã調æ»ããã³æ¯èŒã§ããŸãã
åè¿°ã®ããã«ãç§åŠãœãããŠã§ã¢ã¯éåžžãåäœãã¹ãã§ååã«ã«ããŒãããŠããŸãã ãã®ãããžã§ã¯ãããã§ãã¯ãããšããã¹ããã¡ã€ã«ã®ãã85åã®ãã£ã¬ã¯ããªãåæããé€å€ãããŸããã ããã¯çŽ1,000åã®ãã¡ã€ã«ã§ãã ããã¯ãããããããŸããŸãªç ç©¶ã®ããã«çºæãããããŸããŸãªè€éãªã¢ã«ãŽãªãºã ããã¹ãããããã®èŠä»¶ã«ãããã®ã§ãã ããããæ®ãã®ã³ãŒãïŒãã¹ãçšã§ã¯ãªãïŒã®å質ã¯ãç§ãã¡ãæãã»ã©é«ãã¬ãã«ã§ã¯ãããŸããã ãã ããéçã³ãŒãåæããŒã«ã®å°å
¥ããŸã èæ
®ããŠããªããããžã§ã¯ãã®å Žåãšåæ§ã«:)ã
C / C ++ / CïŒ/ Java-
PVS-Studioã®éçã³ãŒãã¢ãã©ã€ã¶ãŒã«ãã£ãŠãã³ãŒãã¬ãã¥ãŒïŒãŸãã¯ç ç©¶ïŒçšã®ããŒã¿ãæäŸãããŸããã
ãããžã§ã¯ããå°ç¡ãã«ãã2ã€ã®æ°å
çŸåš12,000以äžã®éžæãããäŸã«çžåœãããšã©ãŒã®ããŒã¿ããŒã¹ã«åºã¥ããŠã倿°ã®ãšã©ãŒã«ã€ãªããã³ãŒããèšè¿°ããããã®ç¹å®ã®ãã¿ãŒã³ã«æ°ä»ãã説æããŸãã ããšãã°ã次ã®èª¿æ»ã宿œããŸããã
- æåŸã®è¡ã®å¹æ ã
- C / C ++ã®äžçã§æãå±éºãªé¢æ° ã
- C / C ++ã®è«çåŒã å°éå®¶ã¯ã©ã®çšåºŠééã£ãŠããŸããã
- æªã¯æ¯èŒæ©èœã«äœãã§ããŸã ã
ãã®ãããžã§ã¯ãã¯ãæ°ãããã¿ãŒã³ã®èª¬æã®å§ãŸãã瀺ããŸããã ããšãã°ã
file1ã
file2ãªã©ã倿°ã®ååã«å«ãŸããæ°å
1ãš
2ã«ã€ããŠè©±ããŸãã ãã®ãããª2ã€ã®å€æ°ãæ··åããã®ã¯éåžžã«ç°¡åã§ãã ããã¯ã³ãŒãã®ã¿ã€ããã¹ã®ç¹æ®ãªã±ãŒã¹ã§ããããã®ãããªãšã©ãŒã®1ã€ã¯ãååã®æ«å°Ÿã®æ°å1ãš2ã®ã¿ãç°ãªããåãååã®å€æ°ã䜿çšããããšããæ¬²æ±ã«ã€ãªãããŸãã
å°ãå
ãèŠæ®ããŠããã®ãããžã§ã¯ãã®ã³ãŒãã§äžèšã®ãã¹ãŠã®ç ç©¶ã確èªããããšèšããŸãïŒD.
Genome Workbenchãããžã§ã¯ãã®æåã®äŸãèããŠã¿ãŸãããã
V501 ã||ãã®å·ŠåŽãšå³åŽã«ã¯ãåäžã®å¯æ¬¡åŒãïŒïŒLoc1.IsIntïŒïŒ&&ïŒLoc1.IsWholeïŒïŒïŒãããããŸãã æŒç®åã nw_aligner.cpp 480
CRef<CSeq_align> CNWAligner::Run(CScope &scope, const CSeq_loc &loc1, const CSeq_loc &loc2, bool trim_end_gaps) { if ((!loc1.IsInt() && !loc1.IsWhole()) || (!loc1.IsInt() && !loc1.IsWhole())) { NCBI_THROW(CException, eUnknown, "Only whole and interval locations supported"); } .... }
loc1ãš
loc2ãšããååã®2ã€ã®å€æ°ããã
ãŸã ã ãŸããã³ãŒãã®ãšã©ãŒïŒ
loc2倿°
ã¯äœ¿çšãããŸããã代ããã«
loc1ãå床䜿çšãããããã§ãã
å¥ã®äŸïŒ
V560æ¡ä»¶åŒã®äžéšã¯åžžã«falseã§ãïŒs1.IsSetïŒïŒã valid_biosource.cpp 3073
static bool s_PCRPrimerSetLess(const CPCRPrimerSet& s1, const CPCRPrimerSet& s2) { if (!s1.IsSet() && s1.IsSet()) { return true; } else if (s1.IsSet() && !s2.IsSet()) { return false; } else if (!s1.IsSet() && !s2.IsSet()) { return false; } else if (s1.Get().size() < s2.Get().size()) { return true; } else if (s1.Get().size() > s2.Get().size()) { return false; } else { ..... }
ã³ãŒãã®æåã®è¡ã¯å€æ°
s1ãš
s2ãæ··åããŸããã ååã«åºã¥ããŠãããã¯æ¯èŒé¢æ°ã§ãã ãããããã®ãããªãšã©ãŒã¯ã©ãã§ãçºçããå¯èœæ§ããããŸãã倿°
1ãš
2ã«ååãä»ããããšã§ãããã°ã©ããŒã¯å°æ¥ééããªãééããç¯ãããã§ãã ãŸãã颿°ã§ãã®ãããªååã䜿çšããã»ã©ããšã©ãŒã®å¯èœæ§ãé«ããªããŸãã
ãã®ä»ã®ã¿ã€ããã¹ãšã³ããŒã¢ã³ãããŒã¹ã
V501 'ïŒ='æŒç®åã®å·Šå³ã«åãéšååŒããããŸãïŒbd.bit_.bits [i]ïŒ= Bd.bit_.bits [i] bm.h 296
bool compare_state(const iterator_base& ib) const { .... if (this->block_type_ == 0 { if (bd.bit_.ptr != ib_db.bit_.ptr) return false; if (bd.bit_.idx != ib_db.bit_.idx) return false; if (bd.bit_.cnt != ib_db.bit_.cnt) return false; if (bd.bit_.pos != ib_db.bit_.pos) return false; for (unsigned i = 0; i < bd.bit_.cnt; ++i) { if (bd.bit_.bits[i] != bd.bit_.bits[i]) return false; } } .... }
ãã¹ãŠã®ãã§ãã¯ã®åŸã
bd.bit_ããã³
ib_db.bit_ãªããžã§ã¯ãã® ãããé
åã®ãµã€ãºã¯çãããš
ä¿¡ããŠããŸã ã ãããã£ãŠãã³ãŒãã®äœæè
ã¯ã
ãããé
åã®èŠçŽ ããšã®æ¯èŒã®ããã«1ãµã€ã¯ã«ãèšè¿°ããŸããããæ¯èŒå¯Ÿè±¡ãªããžã§ã¯ãã®1ã€ã®ååã«ã¿ã€ããã¹ãäœæããŸããã ãã®çµæãç¶æ³ã«ãã£ãŠã¯ãæ¯èŒããããªããžã§ã¯ãã誀ã£ãŠçãããšèŠãªãããå ŽåããããŸãã
ãã®äŸã¯ãã
æªã¯æ¯èŒæ©èœã«çããŠãã ããšããèšäºã«å€ã
ãŸã ã
V501 ã||ãã®å·Šãšå³ã«åäžã®ãµãåŒãCFieldHandler :: QualifierNamesAreEquivalentïŒfieldãkFieldTypeSeqIdïŒãããããŸã æŒç®åã field_handler.cpp 152
bool CFieldHandlerFactory::s_IsSequenceIDField(const string& field) { if ( CFieldHandler::QualifierNamesAreEquivalent(field, kFieldTypeSeqId) || CFieldHandler::QualifierNamesAreEquivalent(field, kFieldTypeSeqId)) { return true; } else { return false; } }
ã»ãšãã©ã®å Žåããã§ãã¯ã®1ã€ã¯äžèŠã§ãã
kFieldTypeSeqIdã«äŒŒãã³ãŒã倿°ã¯èŠã€ãããŸãã
ã§ãã ã ããã§ããã||ãæŒç®åã®ããã«äœåãªé¢æ°åŒã³åºããå¯èœã«ãªããããã©ãŒãã³ã¹ãäœäžããŸãã
æ€èšŒãå¿
èŠãªã¢ãã©ã€ã¶ãŒèŠåã®ããåãã¿ã€ãã®å Žæãããã«2ã€ãããŸãã
- V501ã&&ãæŒç®åã®å·Šå³ã«åäžã®ãµãåŒãuf-> GetDataïŒïŒãIsBoolïŒïŒãããããŸãã Variation_utils.cpp 1711
- V501ã&&ãæŒç®åã®å·Šå³ã«åäžã®ãµãåŒãuf-> GetDataïŒïŒãIsBoolïŒïŒãããããŸãã Variation_utils.cpp 1735
V766åãããŒãkArgRemoteããæã€ã¢ã€ãã ããã§ã«è¿œå ãããŠããŸãã blast_args.cpp 3262
void CBlastAppArgs::x_IssueWarningsForIgnoredOptions(const CArgs& args) { set<string> can_override; .... can_override.insert(kArgOutputFormat); can_override.insert(kArgNumDescriptions); can_override.insert(kArgNumAlignments); can_override.insert(kArgMaxTargetSequences); can_override.insert(kArgRemote);
ã¢ãã©ã€ã¶ãŒã¯ã
ã»ããã³ã³ãããŒãžã®2ã€ã®åäžã®å€ã®è¿œå ãæ€åºããŸããã ãã®ã³ã³ããã¯äžæã®å€ã®ã¿ãä¿åãããããéè€ã¯ã³ã³ããã«è¿œå ãããªãããšãæãåºããŠãã ããã
äžèšã®ãããªã³ãŒãã¯ãå€ãã®å Žåãã³ããŒãšè²Œãä»ãã®æ¹æ³ã䜿çšããŠèšè¿°ãããŸãã åã«è¿œå ã®å€ããããããŸãã¯äœæè
ãã³ããŒãããšãã«å€æ°ã®1ã€ã®ååã倿Žããã®ãå¿ããå¯èœæ§ããããŸãã
insertã®äœåãªåŒã³åºããåé€
ãããšãã³ãŒãã¯ãããã«æé©åãããŸãããéèŠã§ã¯ãããŸããã ããã«éèŠãªã®ã¯ãã»ããå
ã®èŠçŽ ãæ¬ èœããŠããããã«ãé倧ãªãšã©ãŒãããã«é ããŠããå¯èœæ§ãããããšã§ãã
V523 ãthenãã¹ããŒãã¡ã³ãã¯ãåŸç¶ã®ã³ãŒããã©ã°ã¡ã³ããšåçã§ãã vcf_reader.cpp 1105
bool CVcfReader::xAssignFeatureLocationSet(....) { .... if (data.m_SetType == CVcfData::ST_ALL_DEL) { if (data.m_strRef.size() == 1) {
颿°ã«ã¯ã倧ãããŠå®å
šã«åäžã®ã³ãŒããã©ã°ã¡ã³ããå«ãŸããŠããŸãã ãã ãããããã«ã¯ããŸããŸãªã³ã¡ã³ããå«ãŸããŠããŸãã ã³ãŒãã¯æé©ã«ãçŽããããæžãããŠãããããšã©ãŒãå«ãã§ããå¯èœæ§ããããŸãã
if-elseã¹ããŒãã¡ã³ããå«ãçãããå Žæã®ãªã¹ãã¯æ¬¡ã®ããã«ãªããŸãã
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã blk.c 2142
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãåŸç¶ã®ã³ãŒããã©ã°ã¡ã³ããšåçã§ãã odbc.c 379
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãåŸç¶ã®ã³ãŒããã©ã°ã¡ã³ããšåçã§ãã odbc.c 1414
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã seqdbvol.cpp 1922
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã seqdb_demo.cpp 466
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãåŸç¶ã®ã³ãŒããã©ã°ã¡ã³ããšåçã§ãã blast_engine.c 1917
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã blast_filter.c 420
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã blast_parameters.c 636
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã unordered_spliter.cpp 684
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã bme.cpp 333
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã gme.cpp 484
/ *ã»ãã¥ãªãã£ã確ä¿ããã®ãæåã§ã* /
V597ã³ã³ãã€ã©ã¯ããpasswd_bufããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 366
void tds_answer_challenge(....) { #define MAX_PW_SZ 14 .... if (ntlm_v == 1) { .... memset(hash, 0, sizeof(hash)); memset(passwd_buf, 0, sizeof(passwd_buf)); memset(ntlm2_challenge, 0, sizeof(ntlm2_challenge)); } else { .... } }
ããããæ¢ã«æšæž¬ããããã«ãã³ãŒãã®ã»ãã¥ãªãã£ã«é¢ããé¢çœãã³ã¡ã³ããã»ã¯ã·ã§ã³ã¿ã€ãã«ã§äœ¿çšãããŸããã
ã€ãŸãããã©ãã·ã¥ããããããã¡ã¯äœ¿çšãããªããªã£ãããã
memset颿°ã¯ã³ã³ãã€ã©ã«ãã£ãŠåé€ãããŸãã ãŸãã
hashã
passwd_bufãªã©ã®ããŒã¿ã¯å®éã«ã¯ãŒãã§ã¯ãããŸããã ãã®éèªæãªã³ã³ãã€ã©ã¡ã«ããºã ã®è©³çްã«ã€ããŠã¯ãã
ãã©ã€ããŒãããŒã¿ãå®å
šã«æ¶å»ãã ããšããèšäºãåç
§ããŠãã ããã
V597ã³ã³ãã€ã©ãŒã¯ããmemsetã颿°åŒã³åºããåé€ã§ããŸããããã¯ããanswerããªããžã§ã¯ãããã©ãã·ã¥ããããã«äœ¿çšãããŸãã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 561
static TDSRET tds7_send_auth(....) { .... memset(&answer, 0, sizeof(TDSANSWER)); return tds_flush_packet(tds); }
ãã»ãã¥ãªãã£ãã«é¢ããã³ã¡ã³ããããäŸã¯ããã ãã§ã¯ãããŸããã ã³ã¡ã³ããã倿ãããšããããžã§ã¯ãã«ãšã£ãŠã»ãã¥ãªãã£ã¯æ¬åœã«éèŠã§ãããšèããããŸãã ãããã£ãŠãç¹å®ãããåé¡ã®å°ããªãªã¹ãå
šäœãå²ã¿ãŸãã
- V597ã³ã³ãã€ã©ãŒã¯ããããŒãããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã ncbi_heapmgr.c 1300
- V597ã³ã³ãã€ã©ãŒã¯ããã³ã³ããã¹ãããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 167
- V597ã³ã³ãã€ã©ã¯ããksããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 339
- V597ã³ã³ãã€ã©ãŒã¯ããmd5_ctxããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 353
- V597ã³ã³ãã€ã©ãŒã¯ããããã·ã¥ããããã¡ãŒããã©ãã·ã¥ããããã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 365
- V597ã³ã³ãã€ã©ã¯ããksããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 406
- V597ã³ã³ãã€ã©ãŒã¯ããntlm_v2_responseããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã login.c 795
- V597ã³ã³ãã€ã©ãŒã¯ããmemsetã颿°åŒã³åºããåé€ã§ããŸããããã¯ããanswerããªããžã§ã¯ãããã©ãã·ã¥ããããã«äœ¿çšãããŸãã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã login.c 801
- V597ã³ã³ãã€ã©ãŒã¯ãããã±ããããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã numeric.c 256
- V597ã³ã³ãã€ã©ãŒã¯ãããã±ããããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã numeric.c 110
- V597ã³ã³ãã€ã©ãŒã¯ããpwdããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã getpassarg.c 50
- V597ã³ã³ãã€ã©ãŒã¯ããã³ã³ããã¹ãããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 188
- V597ã³ã³ãã€ã©ãŒã¯ããbufããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 243
- V597ã³ã³ãã€ã©ãŒã¯ããntlm_v2_hashããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 309
- V597ã³ã³ãã€ã©ãŒã¯ããmd5_ctxããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 354
- V597ã³ã³ãã€ã©ã¯ããpasswd_bufããããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 380
- V597ã³ã³ãã€ã©ã¯ããksããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 393
- V597ã³ã³ãã€ã©ãŒã¯ããããã·ã¥ããããã¡ãŒããã©ãã·ã¥ããããã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 394
- V597ã³ã³ãã€ã©ãŒã¯ã 'memset'颿°åŒã³åºããåé€ã§ããŸããããã¯ã 'ntlm2_challenge'ãããã¡ãŒã®ãã©ãã·ã¥ã«äœ¿çšãããŸãã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 395
- V597ã³ã³ãã€ã©ã¯ããksããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 419
- V597ã³ã³ãã€ã©ãŒã¯ããntlm_v2_responseããªããžã§ã¯ãã®ãã©ãã·ã¥ã«äœ¿çšããããmemsetã颿°åŒã³åºããåé€ã§ããŸããã ãã©ã€ããŒãããŒã¿ãæ¶å»ããã«ã¯ãmemset_sïŒïŒé¢æ°ã䜿çšããå¿
èŠããããŸãã challenge.c 556
çããããµã€ã¯ã«
V534 ãforãæŒç®åå
ã§ééã£ã倿°ãæ¯èŒãããŠããå¯èœæ§ããããŸãã ãiãã®æ€èšãæ€èšããŠãã ããã taxFormat.cpp 569
void CTaxFormat::x_LoadTaxTree(void) { .... for(size_t i = 0; i < alignTaxids.size(); i++) { int tax_id = alignTaxids[i]; .... for(size_t j = 0; i < taxInfo.seqInfoList.size(); j++) { SSeqInfo* seqInfo = taxInfo.seqInfoList[j]; seqInfo->taxid = newTaxid; } .... } .... }
å
åŽã®ã«ãŒãã®ç¶æ
ã§ã¯ã倿°
iã¯ã©ã³ãã ã«ã©ã³ãã ã«ãªã£ããšæããŸãã 代ããã«ã倿°
jã䜿çšããå¿
èŠããããŸãã
V535倿° 'i'ã¯ããã®ã«ãŒããšå€åŽã®ã«ãŒãã«äœ¿çšãããŠããŸãã è¡ã確èªããŠãã ããïŒ302ã309ãsls_alp.cpp 309
alp::~alp() { .... if(d_alp_states) { for(i=0;i<=d_nalp;i++)
ã°ããŒãã«ã«ãŠã³ã¿ããªã»ããããã2ã€ã®ãã¹ããããåäžã®ãµã€ã¯ã«ã¯ãéåžžã«çãããèŠããŸãã éçºè
ã¯ãããã§äœãèµ·ãããã確èªããå¿
èŠããããŸãã
é
åã®ã€ã³ããã¯ã¹ä»ããç°åžžã§ã
V520é
åã€ã³ããã¯ã¹åŒ '[-i2ã-k]'ã®ã³ã³ãæŒç®å 'ã'ã nw_spliced_aligner16.cpp 564
void CSplicedAligner16::x_DoBackTrace ( const Uint2* backtrace_matrix, CNWAligner::SAlignInOut* data, int i_global_max, int j_global_max) { .... while(intron_length < m_IntronMinSize || (Key & donor) == 0) { Key = backtrace_matrix[--i2, --k]; ++intron_length; data->m_transcript.push_back(eTS_Intron); } .... }
ç§ã¯ããã«ãšã©ãŒããªãããã ãšèšããªããã°ãªããŸããïŒä»ã®ãšãããç¬ïŒã 次ã®è¡ãæ€èšããŠãã ããã
Key = backtrace_matrix[--i2, --k];
åèªããããªãã¯ã¹ããšäºé玢åŒä»ãã¯ãé
åã2次å
ã§ããããšã瀺åããå ŽåããããŸãããããã§ã¯ãããŸããã ããã¯æŽæ°ã®é
åãžã®éåžžã®ãã€ã³ã¿ãŒã§ãã ãããã
V520蚺æã¯è¡šç€ºãããŸããã§ããã ããã°ã©ãã¯ã2次å
é
åã®ã€ã³ããã¯ã¹ä»ãæ¹æ³ã«ã€ããŠæ¬åœã«æ··ä¹±ããŠããŸãã
ãã®å Žåãäœè
ã¯æ¬¡ã®ããã«æžãããšãã§ããŸããã1è¡ã®ã³ãŒãã§ä¿åããããšã«ããŸããã
--i2; Key = backtrace_matrix[--k];
V661çããã衚çŸãA [B == C]ãã ãããããA [B] == Cããæå³ããŠããŸããã ncbi_service_connector.c 180
static EHTTP_HeaderParse s_ParseHeader(const char* header, ....) { .... if (sscanf(header, "%u.%u.%u.%u%n", &i1, &i2, &i3, &i4, &n) < 4 || sscanf(header + n, "%hu%x%n", &uuu->port, &tkt, &m) < 2 || (header[m += n] && !(header[m] == '$') && !isspace((unsigned char)((header + m) [header[m] == '$'])))) { break; } .... }
äœãèµ·ãã£ãŠããã®ããçè§£ããããšããŠé·ãæéãè²»ãããã³ãŒãã®å¥ã®äŸïŒD.
isspaceïŒïŒé¢æ°ã¯ãã€ã³ããã¯ã¹
mã®æåããã§ãã¯ããŸããããã®æåãã$ãã®å Žåãã€ã³ããã¯ã¹
m + 1ã®æåã颿°ã«æž¡ãããŸãã ããã«ãã$ããšã®æ¯èŒã¯ãã§ã«äºåã«è¡ãããŠããŸããã ããããããã«ã¯ãšã©ãŒã¯ãããŸããããã³ãŒãã¯ééããªãããæç¢ºã«æžãçŽãããšãã§ããŸãã
V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãè¡ãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã aln_reader.cpp 412
bool CAlnReader::x_IsGap(TNumrow row, TSeqPos pos, const string& residue) { if (m_MiddleSections.size() == 0) { x_CalculateMiddleSections(); } if (row > m_MiddleSections.size()) { return false; } if (pos < m_MiddleSections[row].first) { .... } .... }
ããã«é倧ãªééãããããŸãã æ£ãã
è¡ã€ã³ããã¯ã¹ãã§ãã¯ã¯æ¬¡ã®ããã«ãªããŸãã
if (row >= m_MiddleSections.size()) { return false; }
ãã以å€ã®å Žåã
MiddleSectionsãã¯ãã«ã®å€éšã®ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
ããã«å€ãã®ãã®ãããªå ŽæïŒ
- V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãiãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã resource_pool.hpp 388
- V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãè¡ãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã aln_reader.cpp 418
- V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãfmt_idxãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã seq_writer.cpp 384
- V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãfmt_idxãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã blastdb_formatter.cpp 183
- V557é
åã®ãªãŒããŒã©ã³ãå¯èœã§ãã ãnumãã€ã³ããã¯ã¹ã¯ãé
åã®å¢çãè¶
ããŠããŸãã newcleanupp.cpp 13035
æ©èœã®äžä¿¡ãç²åŸããæ¹æ³
V570 ãm_onClickFunctionã倿°ã¯ããèªäœã«å²ãåœãŠãããŸãã alngraphic.hpp 103
void SetOnClickFunctionName(string onClickFunction) { m_onClickFunction = m_onClickFunction; }
ã³ã¡ã³ãããããšãããããŸããã äœããã¯ãªãã¯ãã人ãã¯ãªãã¯ãã人ã ãã«åæ
ã§ããŸãããäœãå€ãããŸããã
倿°ãèªåã«å²ãåœãŠãå Žåãããã«2ã€ã®ã±ãŒã¹ããªã¹ãã«ãªããŸãã
- V570ãiter-> levelã倿°ã¯ããèªäœã«å²ãåœãŠãããŸãã align_format_util.cpp 189
- V570ãd_elements_values [ind]ã倿°ã¯ããèªäœã«å²ãåœãŠãããŸãã sls_alp_data.cpp 1416
V763ãã©ã¡ãŒã¿ãŒ 'w1'ã¯ã䜿çšãããåã«åžžã«é¢æ°æ¬äœã§æžãæããããŸãã bmfunc.h 5363
颿°ã«å
¥ããšããã«åŒæ°ãã»ã€ãã颿°ã¯ãããã䜿çšããéçºè
ã«ãšã£ãŠèª€è§£ãæãå¯èœæ§ããããŸãã ã³ãŒããå確èªããå¿
èŠããããŸãã
ã¯ã©ã¹èšèšãšã©ãŒ
V688 'm_qsrc'颿°ã®åŒæ°ã¯ãã¯ã©ã¹ã¡ã³ããŒã®1ã€ãšåãååãæã£ãŠãããããæ··ä¹±ãæãå¯èœæ§ããããŸãã compart_matching.cpp 873
class CElementaryMatching: public CObject { .... ISequenceSource * m_qsrc; .... void x_CreateIndex (ISequenceSource *m_qsrc, EIndexMode index_more, ....); void x_CreateRemapData(ISequenceSource *m_qsrc, EIndexMode mode); void x_LoadRemapData (ISequenceSource *m_qsrc, const string& sdb); .... };
ããã«3ã€ã®ã¯ã©ã¹é¢æ°ã«ã¯ãã¯ã©ã¹ãã£ãŒã«ããšååãäžèŽããåŒæ°ãå«ãŸããŸãã ããã«ããã颿°æ¬äœã§ãšã©ãŒãçºçããå¯èœæ§ããããŸããããã°ã©ããŒã¯ãã¯ã©ã¹ã®ã¡ã³ããŒãšäžç·ã«äœæ¥ããŠãããšèããå®éã«ããŒã«ã«å€æ°ã®å€ã倿Žããå ŽåããããŸãã
V614åæåãããŠããªã倿°ãm_BitSetãã䜿çšãããŸããã SnpBitAttributes.hpp 187
ã³ã³ã¹ãã©ã¯ã¿ãŒã®1ã€ã¯ã
m_BitSet倿°ãšäžæ£ç¢ºã§ãã å®éã倿°ã¯åæåãããŠããŸããã ãã®ãã¬ããŒãžãå€ã¯ãã«ãŒãã®æåã®ç¹°ãè¿ãã§äœ¿çšããããã®åŸåæåãè¡ãããŸãã ããã¯éåžžã«é倧ãªééãã§ãããæªå®çŸ©ã®ããã°ã©ã ã®åäœã«ã€ãªãããŸãã
V603ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºãå Žåã¯ããthis-> SIntervalComparisonResult :: SIntervalComparisonResultïŒ....ïŒãã䜿çšããå¿
èŠããããŸãã compare_feats.hpp 100
ããã¶ãåã«ããããžã§ã¯ãããã§ãã¯ãããšãã«ãã®ãããªãšã©ãŒã«ééããŸããã§ããã ããããåé¡ã¯äŸç¶ãšããŠé¢é£ããŠããŸãã ãšã©ãŒã¯ããã®æ¹æ³ã§ãã©ã¡ãŒã¿ãŒåãããã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºããšãäžæãªããžã§ã¯ããäœæããã³åé€ãããããšã§ãã ãããŠãã¯ã©ã¹ã®ãã£ãŒã«ãã¯åæåãããŸããã åæåãªã¹ãããå¥ã®ã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºãå¿
èŠããããŸãïŒ
ã³ã³ã¹ãã©ã¯ã¿ãŒã®å§ä»»ãåç
§ïŒã
V591évoid颿°ã¯å€ãè¿ãå¿
èŠããããŸãã bio_tree.hpp 266
ã¢ãã©ã€ã¶ãŒã¯ããªãŒããŒããŒããããã¹ããŒãã¡ã³ãã«è¡ããªããšèŠãªããŸãã
return *this;
V670åæåãããŠããªãã¯ã©ã¹ã¡ã³ããŒãm_OutBlobIdOrDataãã¯ããm_StdOutãã¡ã³ããŒãåæåããããã«äœ¿çšãããŸãã ã¡ã³ããŒã¯ãã¯ã©ã¹å
ã®å®£èšã®é åºã§åæåãããããšã«æ³šæããŠãã ããã remote_app.hpp 215
class NCBI_XCONNECT_EXPORT CRemoteAppResult { public: CRemoteAppResult(CNetCacheAPI::TInstance netcache_api, size_t max_inline_size = kMaxBlobInlineSize) : m_NetCacheAPI(netcache_api), m_RetCode(-1), m_StdOut(netcache_api, m_OutBlobIdOrData, m_OutBlobSize), m_OutBlobSize(0), m_StdErr(netcache_api, m_ErrBlobIdOrData, m_ErrBlobSize), m_ErrBlobSize(0), m_StorageType(eBlobStorage), m_MaxInlineSize(max_inline_size) { } .... };
ãã®ã³ãŒããã©ã°ã¡ã³ãã«å¯ŸããŠã3ã€ã®ã¢ãã©ã€ã¶ãŒèŠåãããã«çºè¡ãããŸãã ã¯ã©ã¹ãã£ãŒã«ãã¯ãåæåãªã¹ãã«ãªã¹ããããŠããé åºã§åæåãããã®ã§ã¯ãªããã¯ã©ã¹ã§å®£èšãããæ¹æ³ã§åæåãããŸãã ãã®ãšã©ãŒã®å
žåçãªçç±ã¯ããã¹ãŠã®ããã°ã©ããŒããã®ã«ãŒã«ãèŠããŠããããã§ããç¥ã£ãŠããããã§ããªããšããããšã§ãã ãããšåæåãªã¹ãã®é åºã¯ééã£ãŠããŸãã ãã£ãŒã«ãã®ãªã¹ããã©ã³ãã ãªé åºã§å
¥åãããããã«æããŸãã
V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã cobalt.cpp 247
void CMultiAligner::SetQueries(const vector< CRef<objects::CBioseq> >& queries) { .... try { seq_loc->SetId(*it->GetSeqId()); } catch (objects::CObjMgrException e) { NCBI_THROW(CMultiAlignerException, eInvalidInput, (string)"Missing seq-id in bioseq. " + e.GetMsg()); } m_tQueries.push_back(seq_loc); .... }
å€ã§äŸå€ããã£ãããããšãæ°ãããªããžã§ã¯ãã®äœæã«ãããäŸå€ã«é¢ããäžéšã®æ
å ±ã倱ãããå¯èœæ§ããããŸãã åç
§ã«ããäŸå€ããã£ããããæ¹ãã¯ããã«å®å
šã§ãã
åæ§ã®å ŽæïŒ
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã agp_validate_reader.cpp 562
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã aln_build_app.cpp 320
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã aln_test_app.cpp 458
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã cobalt.cpp 691
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã cobalt.cpp 719
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã cobalt.cpp 728
- V746ãªããžã§ã¯ãã®ã¹ã©ã€ã¹ã äŸå€ã¯ãå€ã§ã¯ãªãåç
§ã«ãã£ãŠãã£ããããå¿
èŠããããŸãã cobalt.cpp 732
å°éäžèœã³ãŒãããã³ãã®ä»ã®ã³ãŒãå®è¡ã®åé¡ã«ã€ããŠ
V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã merge_tree_core.cpp 627
bool CMergeTree::x_FindBefores_Up_Iter(....) { .... FirstFrame->Curr = StartCurr; FirstFrame->Returned = false; FirstFrame->VisitCount = 0; FrameStack.push_back(FirstFrame); while(!FrameStack.empty()) { .... if(Rel == CEquivRange::eAfter) { Frame->Returned = false; FrameStack.pop_back(); continue; } else if(Rel == CEquivRange::eBefore) { .... continue; } else { if(Frame->VisitCount == 0) { .... continue; } else { .... continue; } } Frame->Returned = false;
æ¡ä»¶ã¹ããŒãã¡ã³ãã®ã³ãŒãã¯ãã³ãŒãã®ãã¹ãŠã®ãã©ã³ãã
continueã¹ããŒãã¡ã³ãã§çµäºããããã«èšè¿°ãããŠããŸãã ããã«ããã
whileã«ãŒãã§æ°è¡ã®å°éäžèœã³ãŒãã圢æãããŸããã ãããã®è¡ã¯éåžžã«çãããèŠããŸãã ã»ãšãã©ã®å Žåããã®åé¡ã¯ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°åŸã«çºçããçŸåšã§ã¯æ
éãªã³ãŒãã¬ãã¥ãŒãå¿
èŠã§ãã
V519 ãinterval_widthã倿°ã«ã¯ãé£ç¶ããŠ2åå€ãå²ãåœãŠãããŸãã ããããããã¯ééãã§ãã 確èªè¡ïŒ454ã456ãaln_writer.cpp 456
void CAlnWriter::AddGaps(....) { .... switch(exon_chunk->Which()) { case CSpliced_exon_chunk::e_Match: interval_width = exon_chunk->GetMatch(); case CSpliced_exon_chunk::e_Mismatch: interval_width = exon_chunk->GetMismatch(); case CSpliced_exon_chunk::e_Diag: interval_width = exon_chunk->GetDiag(); genomic_string.append(....); product_string.append(....); genomic_pos += interval_width; product_pos += interval_width/res_width; break; .... } .... }
倿°
interval_widthã¯æ°åäžæžããããŸãã
caseåå²ã«ã¯
breakã¹ããŒãã¡ã³ãã¯ãããŸããã å€å
žçã§ã¯ãããŸãããéåžžã«æªãééãã§ãã
ããã«ããã€ãã®çãããå ŽæïŒ
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã dbapi_driver_utils.cpp 351
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã net.c 780
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã bcp.c 1495
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã remote_blast.cpp 1470
- V779å°éäžèœã³ãŒããæ€åºãããŸããã ãšã©ãŒãååšããå¯èœæ§ããããŸãã remote_blast.cpp 1522
V571宿çãªãã§ãã¯ã ãifïŒm_QueryOpts-> filtering_optionsïŒãæ¡ä»¶ã¯ã703è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããblast_options_local_priv.hpp 713
inline void CBlastOptionsLocal::SetFilterString(const char* f) { .... if (m_QueryOpts->filtering_options)
æããã«ã
elseãã©ã³ãã¯æžãæããå¿
èŠã§ãã
m_QueryOpts-> filtering_optionsãã€ã³ã¿ãŒã䜿çšããŠããããã¢ã€ãã¢ãããã€ããããŸãããã³ãŒãã¯ãŸã æ··ä¹±ããŠããŸãã ã³ãŒãã®äœè
ã«èšŽããŸãã
ããŠãåé¡ã¯åç¬ã§ã¯çºçããŸããã
- V571宿çãªãã§ãã¯ã ãifïŒsleeptimeïŒãæ¡ä»¶ã¯ã205è¡ç®ã§ãã§ã«æ€èšŒãããŠããŸããrequest_control.cpp 208
- V571宿çãªãã§ãã¯ã ãifïŒassignValue.emptyïŒïŒïŒãæ¡ä»¶ã¯ã712è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããclassstr.cpp 718
ããŒã¿èªã¿åããšã©ãŒ
V739 EOFã¯ããcharãã¿ã€ãã®å€ãšæ¯èŒããªãã§ãã ããã ãã©ã€ã³ã¹ããªã³ã°[0]ãã¯ãintãã¿ã€ãã§ããå¿
èŠããããŸãã alnread.c 3509
static EBool s_AfrpInitLineData( .... char* linestring = readfunc (pfile); .... while (linestring != NULL && linestring [0] != EOF) { s_TrimSpace (&linestring); .... } .... }
EOFãšæ¯èŒããäºå®ã®æåã¯ã
char倿°ã«ä¿åããªãã§ãã ããã ããããªããšãå€0xFFïŒ255ïŒã®æåã-1ã«ãªãããã¡ã€ã«ã®çµããïŒEOFïŒãšåãæ¹æ³ã§è§£éããããªã¹ã¯ããããŸãã ãŸããïŒ
念ã®ããïŒ
readfunc颿°ã®å®è£
ã確èªãã䟡å€ããããŸãã
V663ç¡éã«ãŒããå¯èœã§ãã ãcin.eofïŒïŒãæ¡ä»¶ã¯ãã«ãŒãããæããã«ã¯äžååã§ãã ãcin.failïŒïŒã颿°åŒã³åºããæ¡ä»¶åŒã«è¿œå ããããšãæ€èšããŠãã ããã ncbicgi.cpp 1564
typedef std::istream CNcbiIstream; void CCgiRequest::Serialize(CNcbiOstream& os) const { .... CNcbiIstream* istrm = GetInputStream(); if (istrm) { char buf[1024]; while(!istrm->eof()) { istrm->read(buf, sizeof(buf)); os.write(buf, istrm->gcount()); } } }
ã¢ãã©ã€ã¶ãŒã¯ãç¡éã«ãŒããçºçããå¯èœæ§ã®ããæœåšçãªãšã©ãŒãæ€åºããŸããã ããŒã¿ã®èªã¿åãäžã«é害ãçºçããå Žåã
eofïŒïŒé¢æ°ãåŒã³åºããšåžžã«
falseãè¿ãã
ãŸã ã
ãã®å Žåã«ã«ãŒããå®äºããã«ã¯ãfailïŒïŒé¢æ°ã«ãã£ãŠè¿ãããå€ã®è¿œå ãã§ãã¯ãå¿
èŠã§ãããã®ä»ã®ãšã©ãŒ
V502ãããããã?:ãæŒç®åã¯äºæ³ãšã¯ç°ãªãæ¹æ³ã§åäœããŸãã ãïŒïŒãæŒç®åã®åªå
é äœã¯ãã&&ãæŒç®åãããäœããªã£ãŠããŸãã
ncbi_connutil.c 1135 static const char* x_ClientAddress(const char* client_host, int local_host) { .... if ((client_host == c && x_IsSufficientAddress(client_host)) || !(ip = *c && !local_host ? SOCK_gethostbyname(c) : SOCK_GetLocalHostAddress(eDefault)) || SOCK_ntoa(ip, addr, sizeof(addr)) != 0 || !(s = (char*) malloc(strlen(client_host) + strlen(addr) + 3))) { return client_host; } .... }
åŒã«æ³šæããŠãã ããïŒ !local_host ? SOCK_gethostbyname(c) : SOCK_GetLocalHostAddress(eDefault)
åŒå
šäœã次ã®ããã«ãªããããããã°ã©ããŒãäºæ³ãããšããã«èšç®ãããŸããã ip = *c && !local_host ? SOCK_gethostbyname(c) : SOCK_GetLocalHostAddress(...)
&&æŒç®åã®åªå
é äœã¯ïŒïŒãããé«ããªã£ãŠããŸãããã®ãããã³ãŒãã¯æå³ãããšããã«å®è¡ãããŸãããV561æ°ãã«å®£èšãããããã 'seq'倿°ã«å€ãå²ãåœãŠãã»ããããããè¯ãã§ããããåã®å®£èšïŒvalidator.cppãè¡490ãvalidator.cpp492 bool CValidator::IsSeqLocCorrectlyOrdered(const CSeq_loc& loc, CScope& scope) { CBioseq_Handle seq; try { CBioseq_Handle seq = scope.GetBioseqHandle(loc); } catch (CObjMgrException& ) {
ããã°ã©ããtry / catchã»ã¯ã·ã§ã³å
ã§æ°ããseq倿°ã宣èšãããããå¥ã®seq倿°ã¯åæåãããã«æ®ãã以äžã®ã³ãŒãã§äœ¿çšãããŸããV562ããŒã«åã®å€ãå€0ãšæ¯èŒããã®ã¯å¥åŠã§ãïŒïŒïŒïŒstatusïŒïŒ0x7fïŒ== 0ïŒïŒ= 0. ncbi_process.cpp 111 bool CProcess::CExitInfo::IsExited(void) const { EXIT_INFO_CHECK; if (state != eExitInfo_Terminated) { return false; } #if defined(NCBI_OS_UNIX) return WIFEXITED(status) != 0; #elif defined(NCBI_OS_MSWIN)
æªãããšã¯äœããããŸããã§ããããWIFEXITEDã¯æ¬¡ã®ããã«ãã¯ããéãããšã倿ããŸããã return (((status) & 0x7f) == 0) != 0;
颿°ãå察ã®å€ãè¿ãããšãããããŸãããå¥ã®ãã®ãããªé¢æ°ãã³ãŒãã§èŠã€ãããèŠåãçºè¡ããŸããïŒ- V562 boolåã®å€ãå€0ãšæ¯èŒããã®ã¯å¥åŠã§ããncbi_process.cpp 126
V595 nullptrã«å¯ŸããŠæ€èšŒãããåã«ããdst_lenããã€ã³ã¿ãŒã䜿çšãããŸãããè¡ã確èªããŠãã ããïŒ309ã315ãzlib.cpp 309 bool CZipCompression::CompressBuffer( const void* src_buf, size_t src_len, void* dst_buf, size_t dst_size, size_t* dst_len) { *dst_len = 0;
dst_lenãã€ã³ã¿ãŒã¯ã颿°ã®å
é ã§éæ¥åç
§ãããŸãããããã«ã³ãŒãããŒãã«çãããã©ããããã§ãã¯ãããŸããdst_lenãã€ã³ã¿ãŒãnullptrã®å Žåãæªå®çŸ©ã®åäœã«ã€ãªãããšã©ãŒãã³ãŒãå
ã§è¡ãããŸãããV590 'chïŒ=' \ 0 '&& ch ==' ''åŒã®æ€æ»ãæ€èšããŠãã ããã衚çŸãéå°ã§ãããã誀æ€ãå«ãŸããŠããŸããcleanup_utils.cpp 580 bool Asn2gnbkCompressSpaces(string& val) { .... while (ch != '\0' && ch == ' ') { ptr++; ch = *ptr; } .... }
ã«ãŒãã忢ããæ¡ä»¶ã¯ãæåchãã¹ããŒã¹ãã©ããã®ã¿ã«äŸåããŸããåŒã¯æ¬¡ã®ããã«ç°¡ç¥åã§ããŸãã while (ch == ' ') { .... }
ãããã«
ç§åŠç ç©¶ã«ãããã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ã®äœ¿çšã¯ãçºèŠãæ¯æŽããæ¯æŽããã§ãããã誀åãåå ã§ç¹ã«éèŠãªãã®ãèŠéããªãããšãæåŸ
ããŸããããNCBI Genome Workbenchãããžã§ã¯ãã®éçºè
ã«ãé£çµ¡ãã ãããPVS-Studioã¢ãã©ã€ã¶ãŒã«ãã£ãŠçºè¡ãããå®å
šãªã¬ããŒããæäŸããŸãããã®å°ããªã³ãŒãã®ç ç©¶ãå€ãã®ãã°ãä¿®æ£ããäžè¬ã«ãããžã§ã¯ãã®ä¿¡é Œæ§ãåäžãããããšãé¡ã£ãŠããŸãããŸã å®è¡ããŠããªãå Žåã¯ããããžã§ã¯ãã®ã³ãŒãã§PVS-Studioãå®è¡ããŠã¿ãŠãã ãããããªãã¯ããã奜ããããããŸãã:)ã
è±èªã話ãèŽè¡ãšãã®èšäºãå
±æãããå Žåã¯ã翻蚳ãžã®ãªã³ã¯ã䜿çšããŠãã ããïŒSvyatoslav Razmyslovã
NCBI Genome WorkbenchïŒè
åšã«ãããããŠããç§åŠç ç©¶