[{"data":1,"prerenderedAt":5649},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Faa-bibliography":28,"surround-\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Faa-bibliography":3838,"sidebar-sei-cert-c-coding-standard":3847},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":27,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":25,"path":26},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":29,"title":30,"body":31,"description":3828,"extension":3829,"meta":3830,"navigation":7,"path":3834,"seo":3835,"stem":3836,"__hash__":3837},"content\u002F4.sei-cert-c-coding-standard\u002F04.back-matter\u002F2.aa-bibliography.md","AA. Bibliography",{"type":32,"value":33,"toc":3824},"minimark",[34,38,61,69,88,104,121,142,157,171,185,199,213,229,241,257,278,294,308,322,335,348,362,376,388,402,414,427,440,452,464,478,495,509,523,537,549,563,577,591,607,623,637,651,665,677,691,704,718,731,743,762,775,788,802,819,833,845,866,879,893,910,922,936,950,962,980,994,1006,1018,1034,1050,1074,1099,1115,1131,1135,1146,1160,1180,1200,1213,1228,1236,1248,1256,1263,1278,1286,1293,1312,1327,1342,1357,1372,1380,1387,1395,1402,1420,1435,1457,1476,1495,1510,1525,1542,1560,1582,1597,1615,1633,1647,1664,1678,1696,1709,1723,1740,1754,1766,1782,1798,1810,1824,1840,1852,1867,1884,1896,1910,1924,1938,1950,1962,1976,1990,2004,2023,2035,2051,2060,2074,2086,2100,2114,2128,2140,2158,2175,2194,2210,2224,2237,2251,2263,2276,2289,2305,2321,2326,2333,2347,2358,2373,2387,2406,2422,2452,2482,2498,2512,2525,2539,2556,2574,2592,2604,2616,2628,2642,2659,2680,2694,2708,2724,2745,2765,2780,2796,2812,2828,2844,2860,2868,2885,2902,2919,2935,2958,2974,2989,3007,3024,3038,3052,3066,3082,3097,3111,3128,3140,3152,3167,3184,3198,3215,3229,3246,3261,3273,3287,3292,3301,3314,3328,3340,3354,3371,3387,3403,3420,3437,3453,3469,3486,3502,3519,3536,3553,3570,3575,3587,3592,3603,3617,3622,3631,3636,3645,3661,3677,3691,3707,3723,3737,3751,3765,3784,3800,3803],[35,36,30],"h1",{"id":37},"aa-bibliography",[39,40,41,45,48,49,55,56,60],"p",{},[42,43],"a",{"id":44},"AA.Bibliography-Acton06",[46,47],"br",{},"\n[Acton 2006] Acton, Mike. \" ",[42,50,54],{"href":51,"rel":52},"http:\u002F\u002Fcellperformance.beyond3d.com\u002Farticles\u002F2006\u002F06\u002Funderstanding-strict-aliasing.html",[53],"nofollow","Understanding Strict Aliasing"," .\" ",[57,58,59],"em",{},"CellPerformance"," , June 1, 2006.",[39,62,63,66,68],{},[42,64],{"id":65},"AA.Bibliography-Aho1986",[46,67],{},"\n[ Aho 1986] Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. \" Compilers: Principles, Techniques, and Tools\" (2nd ed.), 1986.",[39,70,71,74,76,77,55,82,87],{},[42,72],{"id":73},"AA.Bibliography-Apiki2006",[46,75],{},"\n[Apiki 2006] Apiki, Steve. \" ",[42,78,81],{"href":79,"rel":80},"http:\u002F\u002Famddevcentral.com\u002FResources\u002Farchive\u002Fdocumentation\u002Farticles\u002FPages\u002Fdefault.aspx",[53],"Lock-Free Programming on AMD Multi-Core System",[42,83,86],{"href":84,"rel":85},"http:\u002F\u002Fdeveloper.amd.com\u002F",[53],"AMD Developer Central"," , 2006.",[39,89,90,93,95,96,103],{},[42,91],{"id":92},"AA.Bibliography-Apple06",[46,94],{},"\n[Apple 2006] Apple, Inc. ",[42,97,100],{"href":98,"rel":99},"http:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002FSecurity\u002FConceptual\u002FSecureCodingGuide\u002FSecureCodingGuide.pdf",[53],[57,101,102],{},"Secure Coding Guide"," . May 2006.",[39,105,106,109,111,112,55,117,120],{},[42,107],{"id":108},"AA.Bibliography-Asgher2000",[46,110],{},"\n[Asgher 2000] Asgher, Sarmad. ",[42,113,116],{"href":114,"rel":115},"http:\u002F\u002Fwww.drdobbs.com\u002Fgo-parallel\u002Farticle\u002FshowArticle.jhtml;jsessionid=IBA5HITYQUKK1QE1GHRSKH4ATMY32JVN?articleID=219500200",[53],"\"Practical Lock-Free Buffers",[57,118,119],{},"Dr. Dobbs Go-Parallel"," , August 26, 2000.",[39,122,123,126,128,129,136,137],{},[42,124],{"id":125},"AA.Bibliography-Bailey14",[46,127],{},"\n[Bailey 2014] Bailey, Don A. ",[57,130,131],{},[42,132,135],{"href":133,"rel":134},"http:\u002F\u002Fblog.securitymouse.com\u002F2014\u002F06\u002Fraising-lazarus-20-year-old-bug-that.html",[53],"Raising Lazarus—The 20 Year Old Bug that Went to Mars"," ",[42,138,141],{"href":139,"rel":140},"http:\u002F\u002Fwww.phy.duke.edu\u002F%7Ergb\u002FGeneral\u002Fc_book\u002Fc_book\u002Findex.html",[53],". 2014.",[39,143,144,147,149,150,156],{},[42,145],{"id":146},"AA.Bibliography-Banahan03",[46,148],{},"\n[Banahan 2003] Banahan, Mike. ",[42,151,153],{"href":139,"rel":152},[53],[57,154,155],{},"The C Book"," . 2003.",[39,158,159,162,164,165,170],{},[42,160],{"id":161},"AA.Bibliography-Barney10",[46,163],{},"\n[Barney 2010] Barney, Blaise. \" ",[42,166,169],{"href":167,"rel":168},"https:\u002F\u002Fcomputing.llnl.gov\u002Ftutorials\u002Fpthreads\u002F#Mutexes",[53],"Mutex Variables"," .\" POSIX Threads Programming, 2010.",[39,172,173,176,178,179,184],{},[42,174],{"id":175},"AA.Bibliography-Becker08",[46,177],{},"\n[Becker 2008] Becker, Pete. ",[42,180,183],{"href":181,"rel":182},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg21\u002Fdocs\u002Fpapers\u002F2008\u002Fn2521.pdf",[53],"Working Draft, Standard for Programming Language C++"," . April 2008.",[39,186,187,190,192,193,198],{},[42,188],{"id":189},"AA.Bibliography-Beebe05",[46,191],{},"\n[Beebe 2005] Beebe, Nelson H. F. ",[42,194,197],{"href":195,"rel":196},"http:\u002F\u002Fgcc.gnu.org\u002Fml\u002Fgcc-help\u002F2005-11\u002Fmsg00141.html",[53],"Re: Remainder (%) Operator and GCC"," . 2005.",[39,200,201,204,206,207,212],{},[42,202],{"id":203},"AA.Bibliography-Black07",[46,205],{},"\n[Black 2007] Black, Paul E.; Kass, Michael; & Koo, Michael. ",[42,208,211],{"href":209,"rel":210},"http:\u002F\u002Fsamate.nist.gov\u002Fdocs\u002Fsource_code_security_analysis_spec_SP500-268.pdf.",[53],"Source Code Security Analysis Tool Functional Specification Version 1.0. Special Publication 500-268"," . Information Technology Laboratory (ITL), Software Diagnostics and Conformance Testing Division, May 2007.",[39,214,215,218,220,221,228],{},[42,216],{"id":217},"AA.Bibliography-Brainbell.com",[46,219],{},"\n[Brainbell.com] Brainbell.com. ",[42,222,225],{"href":223,"rel":224},"http:\u002F\u002Fwww.brainbell.com\u002Ftutors\u002Fc\u002FAdvice_and_Warnings_for_C\u002F",[53],[57,226,227],{},"Advice and Warnings for C Tutorials"," .",[39,230,231,234,236,237,240],{},[42,232],{"id":233},"AA.Bibliography-Bryant03",[46,235],{},"\n[Bryant 2003] Bryant, Randal E. & O'Halloran, David. ",[57,238,239],{},"Computer Systems: A Programmer's Perspective"," . Upper Saddle River, NJ: Prentice Hall, 2003 (ISBN 0-13-034074-X).",[39,242,243,246,248,249,256],{},[42,244],{"id":245},"AA.Bibliography-Burch06",[46,247],{},"\n[Burch 2006] Burch, Hal; Long, Fred; & Seacord, Robert C. ",[42,250,253],{"href":251,"rel":252},"http:\u002F\u002Fresources.sei.cmu.edu\u002Fasset_files\u002FTechnicalReport\u002F2006_005_001_14768.pdf",[53],[57,254,255],{},"Specifications for Managed Strings"," (CMU\u002FSEI-2006-TR-006). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006.",[39,258,259,262,264,265,277],{},[42,260],{"id":261},"AA.Bibliography-Butenhof97",[46,263],{},"\n[Butenhof 1997] Butenhof, David R. ",[57,266,267],{},[42,268,271,272,276],{"href":269,"rel":270},"http:\u002F\u002Fwww.informit.com\u002Fstore\u002Fproduct.aspx?isbn=0201633922",[53],"Programming with POSIX ",[273,274,275],"sup",{},"®"," Threads"," . Boston: Addison-Wesley Professional, 1997 (ISBN 0-201-63392-2).",[39,279,280,283,285,286,293],{},[42,281],{"id":282},"AA.Bibliography-C992003",[46,284],{},"\n[C99 Rationale 2003] ",[42,287,290],{"href":288,"rel":289},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002FC99RationaleV5.10.pdf",[53],[57,291,292],{},"Rationale for International Standard—Programming Languages—C, Revision 5.10"," (C99 Rationale), April 2003.",[39,295,296,299,301,302,307],{},[42,297],{"id":298},"AA.Bibliography-Callaghan95",[46,300],{},"\n[Callaghan 1995] Callaghan, B; Pawlowski, B.; & Staubach, P. ",[42,303,306],{"href":304,"rel":305},"http:\u002F\u002Fwww.ietf.org\u002Frfc\u002Frfc1813.txt",[53],"IETF RFC 1813 NFS Version 3 Protocol Specification"," , June 1995.",[39,309,310,313,315,316,321],{},[42,311],{"id":312},"AA.Bibliography-Cassidy2014",[46,314],{},"\n[Cassidy 2014] Cassidy, Sean. ",[42,317,320],{"href":318,"rel":319},"http:\u002F\u002Fblog.existentialize.com\u002Fdiagnosis-of-the-openssl-heartbleed-bug.html",[53],"existential type crisis : Diagnosis of the Heartbleed Bug"," [blog post]. April 2014.",[39,323,324,327,329,330,228],{},[42,325],{"id":326},"AA.Bibliography-CERT06a",[46,328],{},"\n[CERT 2006a] CERT\u002FCC. ",[42,331,334],{"href":332,"rel":333},"http:\u002F\u002Fwww.cert.org\u002Fstats\u002Fcert_stats.html",[53],"CERT\u002FCC Statistics 1988–2006",[39,336,337,340,342,343,228],{},[42,338],{"id":339},"AA.Bibliography-CERT06b",[46,341],{},"\n[CERT 2006b] CERT\u002FCC. US-CERT's ",[42,344,347],{"href":345,"rel":346},"http:\u002F\u002Fwww.us-cert.gov\u002Fcas\u002Ftechalerts\u002Findex.html",[53],"Technical Cyber Security Alerts",[39,349,350,353,355,356,361],{},[42,351],{"id":352},"AA.Bibliography-CERT06c",[46,354],{},"\n[CERT 2006c] CERT\u002FCC. ",[42,357,360],{"href":358,"rel":359},"http:\u002F\u002Fwww.cert.org\u002Fsecure-coding\u002F",[53],"Secure Coding"," website.",[39,363,364,367,369,370,375],{},[42,365],{"id":366},"AA.Bibliography-Chen02",[46,368],{},"\n[Chen 2002]  Chen, H.; Wagner, D.; & Dean, D. ",[42,371,374],{"href":372,"rel":373},"http:\u002F\u002Fwww.cs.berkeley.edu\u002F%7Edaw\u002Fpapers\u002Fsetuid-usenix02.pdf",[53],"Setuid Demystified"," . USENIX Security Symposium, 2002.",[39,377,378,381,383,384,387],{},[42,379],{"id":380},"AA.Bibliography-Chess07",[46,382],{},"\n[Chess 2007] Chess, Brian, & West, Jacob. ",[57,385,386],{},"Secure Programming with Static Analysis"," . Boston: Addison-Wesley 2007.",[39,389,390,393,395,396,401],{},[42,391],{"id":392},"AA.Bibliography-Corfield93",[46,394],{},"\n[Corfield 1993] Corfield, Sean A. \" ",[42,397,400],{"href":398,"rel":399},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg21\u002Fdocs\u002Fpapers\u002F1993\u002FN0389.asc",[53],"Making String Literals 'const'"," .\" November 1993.",[39,403,404,407,409,410,413],{},[42,405],{"id":406},"AA.Bibliography-Coverity07",[46,408],{},"\n[Coverity 2007] ",[57,411,412],{},"Coverity Prevent User's Manual (3.3.0)"," . 2007.",[39,415,416,419,421,422,228],{},[42,417],{"id":418},"AA.Bibliography-CVE",[46,420],{},"\n[CVE] ",[42,423,426],{"href":424,"rel":425},"http:\u002F\u002Fcve.mitre.org\u002F",[53],"Common Vulnerabilities and Exposures",[39,428,429,432,434,435,228],{},[42,430],{"id":431},"AA.Bibliography-CPPReference",[46,433],{},"\n[C++ Reference] ",[42,436,439],{"href":437,"rel":438},"http:\u002F\u002Fwww.cppreference.com\u002F",[53],"Standard C Library, General C+ , C + Standard Template Library",[39,441,442,445,447,448,451],{},[42,443],{"id":444},"AA.Bibliography-Dewhurst02",[46,446],{},"\n[Dewhurst 2002] Dewhurst, Stephen C. ",[57,449,450],{},"C++ Gotchas: Avoiding Common Problems in Coding and Design"," . Boston: Addison-Wesley Professional, 2002.",[39,453,454,457,459,460,463],{},[42,455],{"id":456},"AA.Bibliography-Dewhurst05",[46,458],{},"\n[Dewhurst 2005] Dewhurst, Stephen C. ",[57,461,462],{},"C++ Common Knowledge: Essential Intermediate Programming"," . Boston: Addison-Wesley Professional, 2005.",[39,465,466,469,471,472,477],{},[42,467],{"id":468},"AA.Bibliography-DHS06",[46,470],{},"\n[DHS 2006] U.S. Department of Homeland Security. ",[42,473,476],{"href":474,"rel":475},"https:\u002F\u002Fbuildsecurityin.us-cert.gov\u002F",[53],"Build Security In"," . 2006.",[39,479,480,136,483,486,488,489,494],{},[42,481],{"id":482},"AA.Bibliography-DISA2008",[42,484],{"id":485},"AA.Bibliography-DISA2015",[46,487],{},"\n[DISA 2015] DISA. ",[42,490,493],{"href":491,"rel":492},"http:\u002F\u002Fiase.disa.mil\u002Fstigs\u002FDocuments\u002FU_Application_Security_and_Development_V3R10_STIG.zip",[53],"Application Security and Development Security Technical Implementation Guide, Version 3, Release 10"," . Accessed April 2015.",[39,496,497,500,502,503,508],{},[42,498],{"id":499},"AA.Bibliography-DISA2016",[46,501],{},"\n[DISA 2016] DISA. ",[42,504,507],{"href":505,"rel":506},"http:\u002F\u002Fiasecontent.disa.mil\u002Fstigs\u002Fzip\u002FAug2016\u002FU_ASD_V4R1_STIG.zip",[53],"Application Security and Development Security Technical Implementation Guide, Version 4, Release 1"," . Accessed January 2017.",[39,510,511,514,516,517,522],{},[42,512],{"id":513},"AA.Bibliography-DISA2018",[46,515],{},"\n[DISA 2018] DISA. ",[42,518,521],{"href":519,"rel":520},"https:\u002F\u002Fiasecontent.disa.mil\u002Fstigs\u002Fzip\u002FU_ASD_V4R8_STIG.zip",[53],"Application Security and Development Security Technical Implementation Guide, Version 4, Release 8"," . Accessed January 2019.",[39,524,525,528,530,531,536],{},[42,526],{"id":527},"AA.Bibliography-DOD5220",[46,529],{},"\n[DOD 5220] U.S. Department of Defense. ",[42,532,535],{"href":533,"rel":534},"http:\u002F\u002Fwww.dss.mil\u002Fdocuments\u002Fodaa\u002Fnispom2006-5220.pdf",[53],"DoD Standard 5220.22-M"," (Word document).",[39,538,539,542,544,545,548],{},[42,540],{"id":541},"AA.Bibliography-Dowd06",[46,543],{},"\n[Dowd 2006] Dowd, M.; McDonald, J.; & Schuh, J. ",[57,546,547],{},"The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities"," . Boston: Addison-Wesley, 2006.",[39,550,551,554,556,557,562],{},[42,552],{"id":553},"AA.Bibliography-Drepper06",[46,555],{},"\n[Drepper 2006] Drepper, Ulrich. ",[42,558,561],{"href":559,"rel":560},"http:\u002F\u002Fpeople.redhat.com\u002Fdrepper\u002Fdefprogramming.pdf",[53],"Defensive Programming for Red Hat Enterprise Linux (and What To Do If Something Goes Wrong)"," . May 3, 2006.",[39,564,565,568,570,571,576],{},[42,566],{"id":567},"AA.Bibliography-Duff88",[46,569],{},"\n[Duff 1988] Duff, Tom. ",[42,572,575],{"href":573,"rel":574},"http:\u002F\u002Fwww.lysator.liu.se\u002Fc\u002Fduffs-device.html",[53],"Tom Duff on Duff's Device"," . August 29, 1988.",[39,578,579,582,584,585,590],{},[42,580],{"id":581},"AA.Bibliography-Dutta03",[46,583],{},"\n[Dutta 2003] Dutta, Shiv. ",[42,586,589],{"href":587,"rel":588},"http:\u002F\u002Fwww.ibm.com\u002Fdeveloperworks\u002Faix\u002Flibrary\u002Fau-hook_duttaC.html",[53],"Best Practices for Programming in C"," . June 26, 2003.",[39,592,593,596,598,599,606],{},[42,594],{"id":595},"AA.Bibliography-Eckel07",[46,597],{},"\n[Eckel 2007] Eckel, Bruce. ",[42,600,603],{"href":601,"rel":602},"http:\u002F\u002Fbruce-eckel.developpez.com\u002Flivres\u002Fcpp\u002Fticpp\u002Fv2\u002F",[53],[57,604,605],{},"Thinking in C++, Vol. 2"," . January 25, 2007.",[39,608,609,612,614,615,622],{},[42,610],{"id":611},"AA.Bibliography-ECTC98",[46,613],{},"\n[ECTC 1998] Embedded C++ Technical Committee. ",[42,616,619],{"href":617,"rel":618},"http:\u002F\u002Fwww.caravan.net\u002Fec2plus\u002Fguide.html",[53],[57,620,621],{},"The Embedded C++ Programming Guide Lines"," , Version WP-GU-003. January 6, 1998.",[39,624,625,628,630,631,636],{},[42,626],{"id":627},"AA.Bibliography-EideandRegehr",[46,629],{},"\n[Eide and Regehr] Eide, E., & Regehr, J. ",[42,632,635],{"href":633,"rel":634},"http:\u002F\u002Fportal.acm.org\u002Fcitation.cfm?id=1450058.1450093",[53],"Volatiles Are Miscompiled, and What to Do about It"," . 2008.",[39,638,639,642,644,645,650],{},[42,640],{"id":641},"AA.Bibliography-Feather97",[46,643],{},"\n[Feather 1997] Feather, Clive, D. W. ",[42,646,649],{"href":647,"rel":648},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn791.htm",[53],"Solving the struct Hack Problem"," . JTC1\u002FSC22\u002FWG14 N791. (1997).",[39,652,653,656,658,659,664],{},[42,654],{"id":655},"AA.Bibliography-Finlay03",[46,657],{},"\n[Finlay 2003] Finlay, Ian A. CERT Advisory CA-2003-16, ",[42,660,663],{"href":661,"rel":662},"http:\u002F\u002Fwww.cert.org\u002Fadvisories\u002FCA-2003-16.html",[53],"Buffer Overflow in Microsoft RPC"," . CERT\u002FCC, July 2003.",[39,666,667,670,672,673,676],{},[42,668],{"id":669},"AA.Bibliography-Fisher99",[46,671],{},"\n[Fisher 1999] Fisher, David & Lipson, Howard. \"Emergent Algorithms—A New Method for Enhancing Survivability in Unbounded Systems.\" ",[57,674,675],{},"Proceedings of the 32nd Annual Hawaii International Conference on System Sciences (HICSS-32)"," . Maui, HI, January 5–8, 1999.",[39,678,679,682,684,685,690],{},[42,680],{"id":681},"AA.Bibliography-Flake06",[46,683],{},"\n[Flake 2006] Flake, Halvar. \" ",[42,686,689],{"href":687,"rel":688},"http:\u002F\u002Fwww.blackhat.com\u002Fpresentations\u002Fbh-europe-06\u002Fbh-eu-06-Flake.pdf",[53],"Attacks on Uninitialized Local Variables"," .\" Black Hat Federal, 2006.",[39,692,693,696,698,699,477],{},[42,694],{"id":695},"AA.Bibliography-Fortify06",[46,697],{},"\n[Fortify 2006] Fortify Software Inc. ",[42,700,703],{"href":701,"rel":702},"http:\u002F\u002Fwww.hpenterprisesecurity.com\u002Fvulncat\u002Fen\u002Fvulncat\u002Fintro.html",[53],"Fortify Taxonomy: Software Security Errors",[39,705,706,709,711,712,717],{},[42,707],{"id":708},"AA.Bibliography-Fomichev16",[46,710],{},"\n[Fomichev 2016] Fomichev, Roman. \" ",[42,713,716],{"href":714,"rel":715},"https:\u002F\u002Fwww.viva64.com\u002Fen\u002Fb\u002F0388\u002F",[53],"Safe Clearing of Private Data"," \". PVS-Studio Team, 2016.",[39,719,720,723,725,726,198],{},[42,721],{"id":722},"AA.Bibliography-FSF05",[46,724],{},"\n[FSF 2005] Free Software Foundation. ",[42,727,730],{"href":728,"rel":729},"http:\u002F\u002Fgcc.gnu.org\u002Fonlinedocs",[53],"GCC Online Documentation",[39,732,733,736,738,739,742],{},[42,734],{"id":735},"AA.Bibliography-Garfinkel96",[46,737],{},"\n[Garfinkel 1996] Garfinkel, Simson & Spafford, Gene. ",[57,740,741],{},"Practical UNIX & Internet Security"," , 2nd ed. Sebastopol, CA: O'Reilly Media, April 1996 (ISBN 1-56592-148-8).",[39,744,745,748,750,751,756,757],{},[42,746],{"id":747},"AA.Bibliography-GCCBugs",[46,749],{},"\n[GCC Bugs] GCC Team. ",[42,752,755],{"href":753,"rel":754},"http:\u002F\u002Fgcc.gnu.org\u002Fbugs\u002F#nonbugs_c",[53],"GCC Bugs"," . ",[42,758,761],{"href":759,"rel":760},"http:\u002F\u002Fwww.fsf.org",[53],"Free Software Foundation, Inc.",[39,763,764,767,769,770,774],{},[42,765],{"id":766},"AA.Bibliography-GNU10",[46,768],{},"\n[GNU 2010] GNU. ",[42,771,9],{"href":772,"rel":773},"http:\u002F\u002Fwww.gnu.org\u002Fprep\u002Fstandards\u002Fstandards.html",[53]," . GNU, 2010.",[39,776,777,780,782,783,87],{},[42,778],{"id":779},"AA.Bibliography-GNUPth",[46,781],{},"\n[GNU Pth] Engelschall, Ralf S. ",[42,784,787],{"href":785,"rel":786},"http:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fpth\u002F",[53],"GNU Portable Threads",[39,789,790,793,795,796,801],{},[42,791],{"id":792},"AA.Bibliography-Goldberg91",[46,794],{},"\n[Goldberg 1991] Goldberg, David. ",[42,797,800],{"href":798,"rel":799},"http:\u002F\u002Fdocs.sun.com\u002Fsource\u002F806-3568\u002Fncg_goldberg.html",[53],"What Every Computer Scientist Should Know about Floating-Point Arithmetic"," . Sun Microsystems, March 1991.",[39,803,804,807,809,810,756,815,818],{},[42,805],{"id":806},"AA.Bibliography-Goodin2009",[46,808],{},"\n[Goodin 2009] Goodin, Dan. ",[42,811,814],{"href":812,"rel":813},"http:\u002F\u002Fwww.theregister.co.uk\u002F2009\u002F07\u002F17\u002Flinux_kernel_exploit\u002F",[53],"Clever Attack Exploits Fully-Patched Linux Kernel",[57,816,817],{},"The Register"," , July 2009.",[39,820,821,824,826,827,832],{},[42,822],{"id":823},"AA.Bibliography-Gough2005",[46,825],{},"\n[Gough 2005] Gough, Brian J. ",[42,828,831],{"href":829,"rel":830},"http:\u002F\u002Fwww.network-theory.co.uk\u002Fdocs\u002Fgccintro\u002Findex.html",[53],"An Introduction to GCC"," . Network Theory Ltd., Revised August 2005 (ISBN 0-9541617-9-3).",[39,834,835,838,840,841,844],{},[42,836],{"id":837},"AA.Bibliography-Graf03",[46,839],{},"\n[Graff 2003] Graff, Mark G. & Van Wyk, Kenneth R. ",[57,842,843],{},"Secure Coding: Principles and Practices"," . Cambridge, MA: O'Reilly, 2003 (ISBN 0596002424).",[39,846,847,850,852,853,860,861,865],{},[42,848],{"id":849},"AA.Bibliography-Greenman97",[46,851],{},"\n[Greenman 1997] Greenman, David. ",[42,854,857],{"href":855,"rel":856},"http:\u002F\u002Fseclists.org\u002Fbugtraq\u002F1997\u002FJan\u002F0011.html",[53],[57,858,859],{},"Serious Security Bug in wu-ftpd v2.4"," . BUGTRAQ Mailing List (",[42,862,864],{"href":863},"mailto:bugtraq@securityfocus.com","bugtraq@securityfocus.com","), January 2, 1997.",[39,867,868,871,873,874,477],{},[42,869],{"id":870},"AA.Bibliography-Griffiths06",[46,872],{},"\n[Griffiths 2006] Griffiths, Andrew. ",[42,875,878],{"href":876,"rel":877},"http:\u002F\u002Fphrack.org\u002Farchives\u002Fissues\u002F63\u002F14.txt",[53],"Clutching at Straws: When You Can Shift the Stack Pointer",[39,880,881,884,886,887,892],{},[42,882],{"id":883},"AA.Bibliography-Gutmann96",[46,885],{},"\n[Gutmann 1996] Gutmann, Peter. ",[42,888,891],{"href":889,"rel":890},"http:\u002F\u002Fwww.cs.auckland.ac.nz\u002F%7Epgut001\u002Fpubs\u002Fsecure_del.html",[53],"Secure Deletion of Data from Magnetic and Solid-State Memory"," . July 1996.",[39,894,895,898,900,901,136,906,909],{},[42,896],{"id":897},"AA.Bibliography-Haddad05",[46,899],{},"\n[Haddad 2005] Haddad, Ibrahim. ",[42,902,905],{"href":903,"rel":904},"http:\u002F\u002Fresources.sei.cmu.edu\u002Flibrary\u002Fasset-view.cfm?assetid=52665",[53],"\"Secure Coding in C and C++: An Interview with Robert Seacord, Senior Vulnerability Analyst at CERT.\"",[57,907,908],{},"Linux World Magazine"," , November 2005.",[39,911,912,915,917,918,921],{},[42,913],{"id":914},"AA.Bibliography-Hatton95",[46,916],{},"\n[Hatton 1995] Hatton, Les. ",[57,919,920],{},"Safer C: Developing Software for High-Integrity and Safety-Critical Systems"," . New York: McGraw-Hill, 1995 (ISBN 0-07-707640-0).",[39,923,924,927,929,930,935],{},[42,925],{"id":926},"AA.Bibliography-Hatton03",[46,928],{},"\n[Hatton 2003] Hatton, Les. ",[42,931,934],{"href":932,"rel":933},"http:\u002F\u002Fwww.leshatton.org\u002FDocuments\u002FISOC_subset.pdf",[53],"EC-: A Measurement-Based Safer Subset of ISO C Suitable for Embedded System Development"," . November 5, 2003.",[39,937,938,941,943,944,949],{},[42,939],{"id":940},"AA.Bibliography-Henricson92",[46,942],{},"\n[Henricson 1992] Henricson, Mats & Nyquist, Erik. ",[42,945,948],{"href":946,"rel":947},"http:\u002F\u002Fwww.doc.ic.ac.uk\u002Flab\u002Fcplus\u002Fc++.rules\u002F",[53],"Programming in C++, Rules and Recommendations"," . Ellemtel Telecommunication Systems Laboratories, 1992.",[39,951,952,955,957,958,961],{},[42,953],{"id":954},"AA.Bibliography-Horton90",[46,956],{},"\n[Horton 1990] Horton, Mark R. ",[57,959,960],{},"Portable C Software"," . Upper Saddle River, NJ: Prentice-Hall, 1990 (ISBN:0-13-868050-7).",[39,963,964,967,969,970,979],{},[42,965],{"id":966},"AA.Bibliography-Howard02",[46,968],{},"\n[Howard 2002] Howard, Michael & LeBlanc, David C. ",[57,971,972],{},[42,973,976],{"href":974,"rel":975},"https:\u002F\u002Fwww.amazon.com\u002FWriting-Secure-Second-Developer-Practices\u002Fdp\u002F0735617228",[53],[57,977,978],{},"Writing Secure Code 2nd ed."," Redmond, WA: Microsoft Press, 2002.",[39,981,982,985,987,988,993],{},[42,983],{"id":984},"AA.Bibliography-HP03",[46,986],{},"\n[HP 2003] Hewlett-Packard Company. ",[42,989,992],{"href":990,"rel":991},"http:\u002F\u002Fh30097.www3.hp.com\u002Fdocs\u002Fwpapers\u002Fspoof_wp\u002Fsymlink_external.pdf",[53],"Tru64 UNIX: Protecting Your System against File Name Spoofing Attacks"," . Houston, TX: Hewlett-Packard Company, January 2003.",[39,995,996,999,1001,1002,1005],{},[42,997],{"id":998},"AA.Bibliography-IEC608122006",[46,1000],{},"\n[IEC 60812 2006] IEC (International Electrotechnical Commission). ",[57,1003,1004],{},"Analysis Techniques for System Reliability—Procedure for Failure Mode and Effects Analysis (FMEA)"," , 2nd ed. (IEC 60812). Geneva, Switzerland: IEC, 2006.",[39,1007,1008,1011,1013,1014,1017],{},[42,1009],{"id":1010},"AA.Bibliography-IEC615084",[46,1012],{},"\n[IEC 61508-4] IEC. ",[57,1015,1016],{},"Functional Safety of Electrical\u002FElectronic\u002FProgrammable Electronic Safety-Related Systems—Part 4: Definitions and Abbreviations"," . Geneva, Switzerland: IEC, 1998.",[39,1019,1020,1023,1025,1026,1033],{},[42,1021],{"id":1022},"AA.Bibliography-IEEE7542006",[46,1024],{},"\n[IEEE 754 2006] IEEE (Institute of Electrical and Electronics Engineers). ",[42,1027,1030],{"href":1028,"rel":1029},"http:\u002F\u002Fgrouper.ieee.org\u002Fgroups\u002F754\u002F",[53],[57,1031,1032],{},"Standard for Binary Floating-Point Arithmetic"," (IEEE 754-1985). New York: IEEE, 2006.",[39,1035,1036,1039,1041,1042,1049],{},[42,1037],{"id":1038},"AA.Bibliography-IEEEStd610.121990",[46,1040],{},"\n[IEEE Std 610.12 1990] IEEE. ",[42,1043,1046],{"href":1044,"rel":1045},"http:\u002F\u002Fieeexplore.ieee.org\u002Fxpls\u002Fabs_all.jsp?arnumber=159342",[53],[57,1047,1048],{},"IEEE Standard Glossary of Software Engineering Terminology"," . (1990).",[39,1051,1052,1055,1057,1058,1063,1064,1068,1069,1073],{},[42,1053],{"id":1054},"AA.Bibliography-IEEEStd1003.1-2004",[46,1056],{},"\n[IEEE Std 1003.1:2004] IEEE and The Open Group. ",[42,1059,1062],{"href":1060,"rel":1061},"http:\u002F\u002Fwww.opengroup.org\u002Fonlinepubs\u002F009695399\u002F",[53],"The Open Group Base Specifications Issue 6"," (IEEE Std 1003.1), 2004 Edition. (See also ",[42,1065,1067],{"href":1066},"#AA.Bibliography-ISO\u002FIEC\u002FIEEE9945-2004","ISO\u002FIEC 9945-2004"," and ",[42,1070,1072],{"href":1071},"#AA.Bibliography-OpenGroup04","Open Group 04"," .)",[39,1075,1076,136,1079,1082,1084,1085,1090,1091,1068,1095,228],{},[42,1077],{"id":1078},"AA.Bibliography-IEEEStd1003.1",[42,1080],{"id":1081},"AA.Bibliography-IEEEStd1003.1-2008",[46,1083],{},"\n[IEEE Std 1003.1:2008] IEEE and The Open Group. ",[42,1086,1089],{"href":1087,"rel":1088},"http:\u002F\u002Fwww.opengroup.org\u002Fonlinepubs\u002F9699919799",[53],"The Open Group Base Specifications Issue 7"," (IEEE Std 1003.1), 2008 Edition. See also ",[42,1092,1094],{"href":1093},"#AA.Bibliography-ISO\u002FIEC\u002FIEEE9945-2008","ISO\u002FIEC 9945-2008",[42,1096,1098],{"href":1097},"#AA.Bibliography-OpenGroup08","Open Group 2008",[39,1100,1101,136,1103,1106,1108,1109,1114],{},[42,1102],{"id":1078},[42,1104],{"id":1105},"AA.Bibliography-IEEEStd1003.1-2024",[46,1107],{},"\n[IEEE Std 1003.1:2024] IEEE and The Open Group. ",[42,1110,1113],{"href":1111,"rel":1112},"https:\u002F\u002Fpubs.opengroup.org\u002Fonlinepubs\u002F9799919799\u002F",[53],"The Open Group Base Specifications Issue 8"," (IEEE Std 1003.1), 2024 Edition.",[39,1116,1117,1120,1122,1123,1126,1127,228],{},[42,1118],{"id":1119},"AA.Bibliography-IEEEStd1003.1-2013",[46,1121],{},"\n[IEEE Std 1003.1:2013] IEEE and The Open Group. ",[57,1124,1125],{},"Standard for Information Technology—Portable Operating System Interface (POSIX®), Base Specifications, Issue 7"," (IEEE Std 1003.1, 2013 Edition). E-book: ",[42,1128,1129],{"href":1129,"rel":1130},"http:\u002F\u002Fieeexplore.ieee.org\u002Fservlet\u002Fopac?punumber=6506089",[53],[39,1132,1133],{},[42,1134],{"id":1105},[39,1136,1137,1138,1141,1142,228],{},"[IEEE Std 1003.1:2024] IEEE and The Open Group. ",[57,1139,1140],{},"Standard for Information Technology—Portable Operating System Interface (POSIX®), Base Specifications, Issue 8"," (IEEE Std 1003.1, 2024 Edition). E-book: ",[42,1143,1144],{"href":1144,"rel":1145},"https:\u002F\u002Fieeexplore.ieee.org\u002Fdocument\u002F10555529",[53],[39,1147,1148,1151,1153,1154,1159],{},[42,1149],{"id":1150},"AA.Bibliography-IETFRFC6520",[46,1152],{},"\n[IETF: RFC 6520] Internet Engineering Task Force (IETF). ",[42,1155,1158],{"href":1156,"rel":1157},"https:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc6520",[53],"Request for Comments 6520"," : Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension. February 2012.",[39,1161,1162,136,1165,1168,1170,1171,55,1176,1179],{},[42,1163],{"id":1164},"AA.Bibliography-IEEE1003",[42,1166],{"id":1167},"AA.Bibliography-ilja06",[46,1169],{},"\n[ilja 2006] ilja. \" ",[42,1172,1175],{"href":1173,"rel":1174},"http:\u002F\u002Fblogs.23.nu\u002Filja\u002Fstories\u002F12551\u002F",[53],"readlink abuse",[57,1177,1178],{},"ilja's blog"," . August 13, 2006.",[39,1181,1182,1185,1187,1188,1199],{},[42,1183],{"id":1184},"AA.Bibliography-Intel01",[46,1186],{},"\n[Intel 2001] Intel Corp. ",[42,1189,1191,1192,1194,1195,1198],{"href":1190},"ftp:\u002F\u002Fdownload.intel.com\u002Fsoftware\u002Fopensource\u002Flibraries\u002Fieee\u002Fieee_filter_windows2000.pdf","_Floating-Point IEEE Filter for Microsoft Windows 2000 on the Intel ",[273,1193,275],{}," Itanium ",[273,1196,1197],{},"©"," Architecture"," . March 2001.",[39,1201,1202,1205,1207,1208,1212],{},[42,1203],{"id":1204},"AA.Bibliography-InternetSociety00",[46,1206],{},"\n[Internet Society 2000] The Internet Society. ",[42,1209,1211],{"href":1210},"ftp:\u002F\u002Fftp.rfc-editor.org\u002Fin-notes\u002Frfc2828.txt","Internet Security Glossary (RFC 2828)"," . 2000.",[39,1214,1215,136,1218,1221,1223,1224,1227],{},[42,1216],{"id":1217},"AA.Bibliography-ISO\u002FIEC10646-2003",[42,1219],{"id":1220},"AA.Bibliography-ISO-IEC10646-2003",[46,1222],{},"\n[ISO\u002FIEC 10646:2003] ISO\u002FIEC (International Organization for Standardization\u002FInternational Electrotechnical Commission). ",[57,1225,1226],{},"Information Technology—Universal Multiple-Octet Coded Character Set (UCS)"," (ISO\u002FIEC 10646:2003). Geneva, Switzerland: International Organization for Standardization, 2003.",[39,1229,1230,136,1233],{},[42,1231],{"id":1232},"AA.Bibliography-ISO\u002FIEC10646-2012",[42,1234],{"id":1235},"AA.Bibliography-ISO-IEC10646-2012",[39,1237,1238,1239,1247],{},"[ISO\u002FIEC 10646:2012] ISO\u002FIEC. ",[42,1240,1243,1246],{"href":1241,"rel":1242},"http:\u002F\u002Fstandards.iso.org\u002Fittf\u002FPubliclyAvailableStandards\u002Findex.html",[53],[57,1244,1245],{},"Information technology—Universal Multiple-Octet Coded Character Set (UCS)"," (ISO\u002FIEC 10646:2012)"," . Geneva, Switzerland: ISO, 2012.",[39,1249,1250,136,1253],{},[42,1251],{"id":1252},"AA.Bibliography-ISO\u002FIEC11889-1-2009",[42,1254],{"id":1255},"AA.Bibliography-ISO-IEC11889-1-2009",[39,1257,1258,1259,1262],{},"[ISO\u002FIEC 11889-1:2009] ISO\u002FIEC. ",[57,1260,1261],{},"Information Technology—Trusted Platform Module—Part 1: Overview"," (ISO\u002FIEC 11889-1:2009). Geneva, Switzerland: ISO, 2009.",[39,1264,1265,136,1268,1271,1273,1274,1277],{},[42,1266],{"id":1267},"AA.Bibliography-ISO\u002FIEC14882-2003",[42,1269],{"id":1270},"AA.Bibliography-ISO-IEC14882-2003",[46,1272],{},"\n[ISO\u002FIEC 14882:2003] ISO\u002FIEC. ",[57,1275,1276],{},"Programming Languages—C++, Second Edition"," (ISO\u002FIEC 14882-2003). Geneva, Switzerland: ISO, 2003.",[39,1279,1280,136,1283],{},[42,1281],{"id":1282},"AA.Bibliography-ISO\u002FIEC14882-2011",[42,1284],{"id":1285},"AA.Bibliography-ISO-IEC14882-2011",[39,1287,1288,1289,1292],{},"[ISO\u002FIEC 14882:2011] ISO\u002FIEC. ",[57,1290,1291],{},"Information Technology—Programming Languages—C++, Third Edition"," (ISO\u002FIEC 14882-2011). Geneva, Switzerland: ISO, 2011.",[39,1294,1295,136,1298,1301,1303,1304,1311],{},[42,1296],{"id":1297},"AA.Bibliography-ISO\u002FIEC23360-1-2006",[42,1299],{"id":1300},"AA.Bibliography-ISO-IEC23360-1-2006",[46,1302],{},"\n[ISO\u002FIEC 23360-1:2006] ISO\u002FIEC. ",[42,1305,1308],{"href":1306,"rel":1307},"http:\u002F\u002Frefspecs.freestandards.org\u002FLSB_3.1.0\u002FLSB-Core-generic\u002FLSB-Core-generic.pdf",[53],[57,1309,1310],{},"Linux Standard Base (LSB) Core Specification 3.1—Part 1: Generic Specification"," . Geneva, Switzerland: ISO, 2006.",[39,1313,1314,136,1317,1320,1322,1323,1326],{},[42,1315],{"id":1316},"AA.Bibliography-ISO\u002FIEC646-1991",[42,1318],{"id":1319},"AA.Bibliography-ISO-IEC646-1991",[46,1321],{},"\n[ISO\u002FIEC 646:1991] ISO\u002FIEC. ",[57,1324,1325],{},"Information Technology: ISO 7-Bit Coded Character Set for Information Interchange"," (ISO\u002FIEC 646-1991). Geneva, Switzerland: ISO, 1991.",[39,1328,1329,136,1332,1335,1337,1338,1341],{},[42,1330],{"id":1331},"AA.Bibliography-ISO\u002FIEC9899:1990",[42,1333],{"id":1334},"AA.Bibliography-ISO-IEC9899-1990",[46,1336],{},"\n[ISO\u002FIEC 9899:1990] ISO\u002FIEC. ",[57,1339,1340],{},"Programming Languages—C"," (ISO\u002FIEC 9899:1990). Geneva, Switzerland: ISO, 1990.",[39,1343,1344,136,1347,1350,1352,1353,1356],{},[42,1345],{"id":1346},"AA.Bibliography-ISO\u002FIEC9899:1999",[42,1348],{"id":1349},"AA.Bibliography-ISO-IEC9899-1999",[46,1351],{},"\n[ISO\u002FIEC 9899:1999] ISO\u002FIEC. ",[57,1354,1355],{},"Programming Languages—C, 2nd ed"," (ISO\u002FIEC 9899:1999). Geneva, Switzerland: ISO, 1999.",[39,1358,1359,136,1362,1365,1367,1368,1371],{},[42,1360],{"id":1361},"AA.Bibliography-ISO\u002FIEC9899-2011",[42,1363],{"id":1364},"AA.Bibliography-ISO-IEC9899-2011",[46,1366],{},"\n[ISO\u002FIEC 9899:2011] ISO\u002FIEC. ",[57,1369,1370],{},"Programming Languages—C, 3rd ed"," (ISO\u002FIEC 9899:2011). Geneva, Switzerland: ISO, 2011.",[39,1373,1374,136,1377],{},[42,1375],{"id":1376},"AA.Bibliography-ISO\u002FIEC9899-2017",[42,1378],{"id":1379},"AA.Bibliography-ISO-IEC9899-2017",[39,1381,1382,1383,1386],{},"[ISO\u002FIEC 9899:2017] ISO\u002FIEC. ",[57,1384,1385],{},"Programming Languages—C, 4th ed"," (ISO\u002FIEC 9899:2017). Geneva, Switzerland: ISO, 2017.",[39,1388,1389,136,1392],{},[42,1390],{"id":1391},"AA.Bibliography-ISO\u002FIEC9899-2024",[42,1393],{"id":1394},"AA.Bibliography-ISO-IEC9899-2024",[39,1396,1397,1398,1401],{},"[ISO\u002FIEC 9899:2024] ISO\u002FIEC. ",[57,1399,1400],{},"Programming Languages—C, 5th ed"," (ISO\u002FIEC 9899:2024). Geneva, Switzerland: ISO, 2024.",[39,1403,1404,136,1407,1410,1412,1413,1419],{},[42,1405],{"id":1406},"AA.Bibliography-ISO\u002FIEC9945-2003",[42,1408],{"id":1409},"AA.Bibliography-ISO-IEC9945-2003",[46,1411],{},"\n[ISO\u002FIEC 9945:2003] ISO\u002FIEC. ",[57,1414,1415,1416,1418],{},"Information Technology—Programming Languages, Their Environments and System Software Interfaces—Portable Operating System Interface (POSIX ",[273,1417,275],{}," )"," [including Technical Corrigendum 1] (ISO\u002FIEC 9945:2003). Geneva, Switzerland: ISO, 2003.",[39,1421,1422,136,1425,1428,1430,1431,1434],{},[42,1423],{"id":1424},"AA.Bibliography-ISO\u002FIEC\u002FIEEE24765:2010",[42,1426],{"id":1427},"AA.Bibliography-ISO\u002FIEC\u002FIEEE24765-2010",[46,1429],{},"\n[ISO\u002FIEC\u002FIEEE 24765:2010] ISO\u002FIEC\u002FIEEE. ",[57,1432,1433],{},"Systems and Software Engineering—Vocabulary"," (ISO\u002FIEC\u002FIEEE 24765:2010). Geneva, Switzerland: ISO, 2010.",[39,1436,1437,136,1440,1443,1445,1446,136,1449,136,1453,1456],{},[42,1438],{"id":1439},"AA.Bibliography-ISO\u002FIEC\u002FIEEE9945-2008",[42,1441],{"id":1442},"AA.Bibliography-ISO-IEC-IEEE9945-2008",[46,1444],{},"\n[ISO\u002FIEC\u002FIEEE 9945:2008] ISO\u002FIEC\u002FIEEE. ",[57,1447,1448],{},"Information Technology—Programming Languages, Their Environments and System Software Interfaces—Portable Operating System Interface (POSIX",[57,1450,1451],{},[273,1452,275],{},[57,1454,1455],{},")"," . (ISO\u002FIEC\u002FIEEE 9945:2008) Geneva, Switzerland: ISO, 2008.",[39,1458,1459,136,1462,1465,1467,1468,1475],{},[42,1460],{"id":1461},"AA.Bibliography-ISO\u002FIECDTR24732",[42,1463],{"id":1464},"AA.Bibliography-ISO-IECDTR24732",[46,1466],{},"\n[ISO\u002FIEC DTR 24732] ISO\u002FIEC JTC1 SC22 WG14 N1290. ",[57,1469,1470],{},[42,1471,1474],{"href":1472,"rel":1473},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1290.pdf",[53],"Extension for the Programming Language C to Support Decimal Floating-Point Arithmetic"," . Geneva, Switzerland: ISO, March 2008.",[39,1477,1478,136,1481,1484,1486,1487,1494],{},[42,1479],{"id":1480},"AA.Bibliography-ISO\u002FIECJTC1\u002FSC22\u002FWG11",[42,1482],{"id":1483},"AA.Bibliography-ISO-IECJTC1-SC22-WG11",[46,1485],{},"\n[ISO\u002FIEC JTC1\u002FSC22\u002FWG11] ISO\u002FIEC. ",[42,1488,1491],{"href":1489,"rel":1490},"http:\u002F\u002Fwww.open-std.org\u002FJTC1\u002FSC22\u002FWG11\u002F",[53],[57,1492,1493],{},"Binding Techniques"," (ISO\u002FIEC JTC1\u002FSC22\u002FWG11). Geneva, Switzerland: ISO, 2007.",[39,1496,1497,1500,1502,1503,1509],{},[42,1498],{"id":1499},"AA.Bibliography-ISO-IECJTC1-SC22-WG14",[46,1501],{},"\n[ISO\u002FIEC JTC1\u002FSC22\u002FWG14] ISO\u002FIEC. ",[42,1504,1506],{"href":647,"rel":1505},[53],[57,1507,1508],{},"Solving the Struct Hack Problem"," (ISO\u002FIEC JTC1\u002FSC22\u002FWG14 N791). Geneva, Switzerland: ISO, 1997.",[39,1511,1512,136,1515,1518,1520,1521,1524],{},[42,1513],{"id":1514},"AA.Bibliography-ISO\u002FIECTR24731-1-2007",[42,1516],{"id":1517},"AA.Bibliography-ISO-IECTR24731-1-2007",[46,1519],{},"\n[ISO\u002FIEC TR 24731-1:2007] ISO\u002FIEC TR 24731. ",[57,1522,1523],{},"Extensions to the C Library—Part I: Bounds-Checking Interfaces"," . Geneva, Switzerland: ISO, April 2006.",[39,1526,1527,136,1530,1533,1535,1536,1541],{},[42,1528],{"id":1529},"AA.Bibliography-ISO\u002FIECPDTR24731-2-2007",[42,1531],{"id":1532},"AA.Bibliography-ISO-IECPDTR24731-2-2007",[46,1534],{},"\n[ISO\u002FIEC PDTR 24731-2] ",[42,1537,1540],{"href":1538,"rel":1539},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1248.pdf",[53],"Extensions to the C Library—Part II: Dynamic Allocation Functions"," . Geneva, Switzerland: ISO, August 2007.",[39,1543,1544,136,1547,1550,1552,1553,1559],{},[42,1545],{"id":1546},"AA.Bibliography-ISO\u002FIECTR24731-2-2010",[42,1548],{"id":1549},"AA.Bibliography-ISO-IECTR24731-2-2010",[46,1551],{},"\n[ISO\u002FIEC TR 24731-2:2010] ISO\u002FIEC TR 24731. ",[42,1554,1557],{"href":1555,"rel":1556},"http:\u002F\u002Fwww.iso.org\u002Fiso\u002Fiso_catalogue\u002Fcatalogue_ics\u002Fcatalogue_detail_ics.htm?csnumber=51678&ICS1=35&ICS2=060",[53],[57,1558,1540],{}," . Geneva, Switzerland: ISO, April 2010.",[39,1561,1562,136,1565,1568,1570,1571,136,1574,1577,1578,1581],{},[42,1563],{"id":1564},"AA.Bibliography-ISO\u002FIECTR24772-2010",[42,1566],{"id":1567},"AA.Bibliography-ISO-IECTR24772-2010",[46,1569],{},"\n[ISO\u002FIEC TR 24772:2010] ISO\u002FIEC TR 24772:2010. ",[57,1572,1573],{},"Information Technology—",[57,1575,1576],{},"Programming Languages"," — ",[57,1579,1580],{},"Guidance to Avoiding Vulnerabilities in Programming Languages through Language Selection and Use."," Geneva, Switzerland: ISO, October 2010.",[39,1583,1584,136,1587,1590,1592,1593,1596],{},[42,1585],{"id":1586},"AA.Bibliography-ISO\u002FIECTR24772-2013",[42,1588],{"id":1589},"AA.Bibliography-ISO-IECTR24772-2013",[46,1591],{},"\n[ISO\u002FIEC TR 24772:2013] ISO\u002FIEC TR 24772:2013. ",[57,1594,1595],{},"Information Technology—Programming Languages—Guidance to Avoiding Vulnerabilities in Programming Languages through Language Selection and Use"," . Geneva, Switzerland: ISO, March 2013.",[39,1598,1599,136,1602,136,1605,1608,1610,1611,1614],{},[42,1600],{"id":1601},"AA.Bibliography-ISO\u002FIECTS17961",[42,1603],{"id":1604},"AA.Bibliography-ISO-IECTS17961",[42,1606],{"id":1607},"AA.Bibliography-ISO\u002FIECTS17961-2013",[46,1609],{},"\n[ISO\u002FIEC TS 17961] ISO\u002FIEC TS 17961. ",[57,1612,1613],{},"Information Technology—Programming Languages, Their Environments and System Software Interfaces—C Secure Coding Rules."," Geneva, Switzerland: ISO, 2012.",[39,1616,1617,136,1620,1623,1625,1626,228],{},[42,1618],{"id":1619},"AA.Bibliography-ISO\u002FIECWG14N1173",[42,1621],{"id":1622},"AA.Bibliography-ISO-IECWG14N1173",[46,1624],{},"\n[ISO\u002FIEC WG14 N1173] ISO\u002FIEC. ",[42,1627,1630],{"href":1628,"rel":1629},"http:\u002F\u002Fwww.open-std.org\u002FJTC1\u002FSC22\u002FWG14\u002Fwww\u002Fdocs\u002Fn1173.pdf",[53],[57,1631,1632],{},"Rationale for TR 24731 Extensions to the C Library—Part I: Bounds-Checking Interfaces",[39,1634,1635,1638,1640,1641,1643,1644,1646],{},[42,1636],{"id":1637},"AA.Bibliography-Jack07",[46,1639],{},"\n[Jack 2007] Jack, Barnaby. Vector rewrite attack: Exploitable NULL pointer vulnerabilities",[46,1642],{},"\non ARM and XScale architectures. In CanSecWest 2007, Vancouver,",[46,1645],{},"\nBC, Canada, April 2007.",[39,1648,1649,1652,1654,1655,136,1660,1663],{},[42,1650],{"id":1651},"AA.Bibliography-Jones04",[46,1653],{},"\n[Jones 2004] Jones, Nigel. ",[42,1656,1659],{"href":1657,"rel":1658},"http:\u002F\u002Fwww.netrino.com\u002FArticles\u002FOffsetOf\u002Findex.php",[53],"Learn a New Trick with the offsetof() Macro.",[57,1661,1662],{},"Embedded Systems Programming"," , March 2004.",[39,1665,1666,1669,1671,1672,1677],{},[42,1667],{"id":1668},"AA.Bibliography-Jones08",[46,1670],{},"\n[Jones 2008] Jones, Derek M. ",[42,1673,1676],{"href":1674,"rel":1675},"http:\u002F\u002Fwww.knosof.co.uk\u002Fcbook\u002F",[53],"The New C Standard: An Economic and Cultural Commentary"," . Knowledge Software Ltd., 2008.",[39,1679,1680,1683,1685,1686,136,1693],{},[42,1681],{"id":1682},"AA.Bibliography-Jones10",[46,1684],{},"\n[Jones 2010] Jones, Larry. (2010). ",[42,1687,1690],{"href":1688,"rel":1689},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1539.pdf",[53],[57,1691,1692],{},"WG14 N1539 Committee Draft ISO\u002FIEC 9899:201x",[57,1694,1695],{},".",[39,1697,1698,1701,1703,1704,228],{},[42,1699],{"id":1700},"AA.Bibliography-Juricn.d.",[46,1702],{},"\n[Juric n.d.] Juric, Zeljko, et al. (n.d.). ",[42,1705,1708],{"href":1706,"rel":1707},"http:\u002F\u002Ftigcc.ticalc.org\u002Fdoc\u002Fkeywords.html",[53],"TIGCC Documentation, Latest Development Version (TIGCC\u002FTIGCCLIB CVS): C Language Keywords",[39,1710,1711,1714,1716,1717,1722],{},[42,1712],{"id":1713},"AA.Bibliography-Keaton09",[46,1715],{},"\n[Keaton 2009] Keaton, David; Plum, Thomas; Seacord, Robert C.; Svoboda, David; Volkovitsky, Alex; & Wilson, Timothy. ",[42,1718,1721],{"href":1719,"rel":1720},"http:\u002F\u002Fwww.sei.cmu.edu\u002Fpublications\u002Fdocuments\u002F09.reports\u002F09tn023.html",[53],"As-if Infinitely Ranged Integer Model"," . CMU\u002FSEI-2009-TN-023. July 2009.",[39,1724,1725,1728,1730,1731,55,1736,1739],{},[42,1726],{"id":1727},"AA.Bibliography-Keil08",[46,1729],{},"\n[Keil 2008] Keil, an ARM Company. \" ",[42,1732,1735],{"href":1733,"rel":1734},"http:\u002F\u002Fwww.keil.com\u002Fsupport\u002Fman\u002Fdocs\u002Farmlib\u002Farmlib_bihbjiea.htm",[53],"Floating Point Support",[57,1737,1738],{},"RealView Libraries and Floating Point Support Guide"," , 2008.",[39,1741,1742,1745,1747,1748,1753],{},[42,1743],{"id":1744},"AA.Bibliography-Kennaway00",[46,1746],{},"\n[Kennaway 2000] Kennaway, Kris. ",[42,1749,1752],{"href":1750,"rel":1751},"http:\u002F\u002Flwn.net\u002F2000\u002F1221\u002Fa\u002Fsec-tmp.php3",[53],"Re: \u002Ftmp topic"," . December 2000.",[39,1755,1756,1759,1761,1762,1765],{},[42,1757],{"id":1758},"AA.Bibliography-Kernighan88",[46,1760],{},"\n[Kernighan 1988] Kernighan, Brian W. & Ritchie, Dennis M. ",[57,1763,1764],{},"The C Programming Language"," , 2nd ed. Englewood Cliffs, NJ: Prentice-Hall, 1988.",[39,1767,1768,1771,1773,1774,1781],{},[42,1769],{"id":1770},"AA.Bibliography-Kettle02",[46,1772],{},"\n[Kettlewell 2002] Kettlewell, Richard. ",[42,1775,1778],{"href":1776,"rel":1777},"http:\u002F\u002Fwww.greenend.org.uk\u002Frjk\u002F2001\u002F02\u002Fcfu.html",[53],[57,1779,1780],{},"C Language Gotchas"," . February 2002.",[39,1783,1784,1787,1789,1790,1797],{},[42,1785],{"id":1786},"AA.Bibliography-Kettle03",[46,1788],{},"\n[Kettlewell 2003] Kettlewell, Richard. ",[42,1791,1794],{"href":1792,"rel":1793},"http:\u002F\u002Fwww.greenend.org.uk\u002Frjk\u002F2003\u002F03\u002Finline.html",[53],[57,1795,1796],{},"Inline Functions in C"," . March 2003.",[39,1799,1800,1803,1805,1806,1809],{},[42,1801],{"id":1802},"AA.Bibliography-Kirch-Prinz02",[46,1804],{},"\n[Kirch-Prinz 2002] Kirch-Prinz, Ulla & Prinz, Peter. ",[57,1807,1808],{},"C Pocket Reference"," . Sebastopol, CA: O'Reilly, November 2002 (ISBN: 0-596-00436-2).",[39,1811,1812,1815,1817,1818,1823],{},[42,1813],{"id":1814},"AA.Bibliography-Klarer04",[46,1816],{},"\n[Klarer 2004] Klarer, R.; Maddock, J.; Dawes, B.; & Hinnant, H. \" ",[42,1819,1822],{"href":1820,"rel":1821},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg21\u002Fdocs\u002Fpapers\u002F2004\u002Fn1720.html",[53],"Proposal to Add Static Assertions to the Core Language (Revision 3)."," \" ISO C++ committee paper ISO\u002FIEC JTC1\u002FSC22\u002FWG21\u002FN1720, October 2004.",[39,1825,1826,1829,1831,1832,1839],{},[42,1827],{"id":1828},"AA.Bibliography-Klein02",[46,1830],{},"\n[Klein 2002] Klein, Jack. ",[42,1833,1836],{"href":1834,"rel":1835},"http:\u002F\u002Fhome.att.net\u002F%7Ejackklein\u002Fc\u002Fcode\u002Fstrtol.html",[53],[57,1837,1838],{},"Bullet Proof Integer Input Using strtol()"," . 2002.",[39,1841,1842,1845,1847,1848,1851],{},[42,1843],{"id":1844},"AA.Bibliography-Koenig89",[46,1846],{},"\n[Koenig 1989] Koenig, Andrew. ",[57,1849,1850],{},"C Traps and Pitfalls"," . Addison-Wesley Professional, 1989.",[39,1853,1854,1857,1859,1860,477],{},[42,1855],{"id":1856},"AA.Bibliography-Kuhn06",[46,1858],{},"\n[Kuhn 2006] Kuhn, Markus. ",[42,1861,1864],{"href":1862,"rel":1863},"http:\u002F\u002Fwww.cl.cam.ac.uk\u002F%7Emgk25\u002Funicode.html",[53],[57,1865,1866],{},"UTF-8 and Unicode FAQ for Unix\u002FLinux",[39,1868,1869,1872,1874,1875,55,1880,1883],{},[42,1870],{"id":1871},"AA.Bibliography-Lai06",[46,1873],{},"\n[Lai 2006] Lai, Ray. \" ",[42,1876,1879],{"href":1877,"rel":1878},"http:\u002F\u002Fundeadly.org\u002Fcgi?action=article&sid=20061027031811",[53],"Reading Between the Lines",[57,1881,1882],{},"OpenBSD Journal"," , October 2006.",[39,1885,1886,1889,1891,1892,1895],{},[42,1887],{"id":1888},"AA.Bibliography-Lea2000",[46,1890],{},"\n[Lea 2000] Lea, Doug. ",[57,1893,1894],{},"Concurrent Programming in Java"," , 2nd ed., Addison-Wesley Professional, Boston, 2000.",[39,1897,1898,1901,1903,1904,1909],{},[42,1899],{"id":1900},"AA.Bibliography-Lewis06",[46,1902],{},"\n[Lewis 2006] Lewis, Richard. \" ",[42,1905,1908],{"href":1906,"rel":1907},"http:\u002F\u002Fsecureapps.blogspot.com\u002F2006\u002F10\u002Fsecurity-considerations-when-handling.html",[53],"Security Considerations when Handling Sensitive Data"," .\" Posted on the Application Security by Richard Lewis blog October 2006.",[39,1911,1912,1915,1917,1918,1923],{},[42,1913],{"id":1914},"AA.Bibliography-Linux08",[46,1916],{},"\n[Linux 2008] ",[42,1919,1922],{"href":1920,"rel":1921},"http:\u002F\u002Fwww.kernel.org\u002Fdoc\u002Fman-pages\u002Fonline_pages.html",[53],"Linux Programmer's Manual"," . October 2008.",[39,1925,1926,1929,1931,1932,1937],{},[42,1927],{"id":1928},"AA.Bibliography-Lions96",[46,1930],{},"\n[Lions 1996] Lions, J. L. ",[42,1933,1936],{"href":1934,"rel":1935},"http:\u002F\u002Fen.wikisource.org\u002Fwiki\u002FAriane_501_Inquiry_Board_report",[53],"ARIANE 5 Flight 501 Failure Report"," . Paris, France: European Space Agency (ESA) & National Center for Space Study (CNES) Inquiry Board, July 1996.",[39,1939,1940,1943,1945,1946,1949],{},[42,1941],{"id":1942},"AA.Bibliography-Lipson00",[46,1944],{},"\n[Lipson 2000] Lipson, Howard & Fisher, David. \"Survivability: A New Technical and Business Perspective on Security,\" 33–39. ",[57,1947,1948],{},"Proceedings of the 1999 New Security Paradigms Workshop. Caledon Hills, Ontario, Canada, Sept. 22–24, 1999"," . New York: Association for Computing Machinery, 2000.",[39,1951,1952,1955,1957,1958,1961],{},[42,1953],{"id":1954},"AA.Bibliography-Lipson06",[46,1956],{},"\n[Lipson 2006] Lipson, Howard. ",[57,1959,1960],{},"Evolutionary Systems Design: Recognizing Changes in Security and Survivability Risks"," (CMU\u002FSEI-2006-TN-027).  Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006.",[39,1963,1964,1967,1969,1970,1975],{},[42,1965],{"id":1966},"AA.Bibliography-Liu2009",[46,1968],{},"\n[Liu 2009] Likai Liu. ",[42,1971,1974],{"href":1972,"rel":1973},"http:\u002F\u002Flifecs.likai.org\u002F2009\u002F01\u002Fmaking-null-pointer-reference-legal.html",[53],"Making NULL-pointer reference legal"," , Life of a Computer Science Student. January, 2009.",[39,1977,1978,1981,1983,1984,1989],{},[42,1979],{"id":1980},"AA.Bibliography-LockheedMartin05",[46,1982],{},"\n[Lockheed Martin 2005] Lockheed Martin. ",[42,1985,1988],{"href":1986,"rel":1987},"http:\u002F\u002Fwww.stroustrup.com\u002FJSF-AV-rules.pdf",[53],"Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program."," Document Number 2RDU00001 Rev C., December 2005.",[39,1991,1992,1995,1997,1998,2003],{},[42,1993],{"id":1994},"AA.Bibliography-Loosemore07",[46,1996],{},"\n[Loosemore 2007] Loosemore, Sandra; Stallman, Richard M.; McGrath, Roland; Oram, Andrew; & Drepper, Ulrich. ",[42,1999,2002],{"href":2000,"rel":2001},"http:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Flibc\u002Fmanual\u002F",[53],"The GNU C Library Reference Manual"," , Edition 0.11. September 2007.",[39,2005,2006,2009,2011,2012,756,2019,2022],{},[42,2007],{"id":2008},"AA.Bibliography-McCluskey01",[46,2010],{},"\n[McCluskey 2001] McCluskey, Glen. ",[42,2013,2016],{"href":2014,"rel":2015},"https:\u002F\u002Fwww.usenix.org\u002Fsystem\u002Ffiles\u002Flogin\u002Farticles\u002F1789-mccluskey.pdf",[53],[57,2017,2018],{},"Flexible Array Members and Designators in C9X",[57,2020,2021],{},";login:,"," 26, 4 (July 2001): 29–32.",[39,2024,2025,2028,2030,2031,2034],{},[42,2026],{"id":2027},"AA.Bibliography-Mell07",[46,2029],{},"\n[Mell 2007] Mell, Peter; Scarfone, Karen; & Romanesky, Sasha. \"A Complete Guide to the Common Vulnerability Scoring System Version 2.0.\" ",[57,2032,2033],{},"FIRST"," , June 2007.",[39,2036,2037,2040,2042,2043,2050],{},[42,2038],{"id":2039},"AA.Bibliography-mercy06",[46,2041],{},"\n[Mercy 2006] Mercy. ",[42,2044,2047],{"href":2045,"rel":2046},"http:\u002F\u002Fwww.felinemenace.org\u002Fpapers\u002FUBehavior.zip",[53],[57,2048,2049],{},"Exploiting Uninitialized Data"," . January 2006.",[39,2052,2053,2054,2059],{},"[Myers 2001] Meyers, Randy. ",[42,2055,2058],{"href":2056,"rel":2057},"https:\u002F\u002Fwww.drdobbs.com\u002Fthe-new-c-x-macros\u002F184401387",[53],"The New C: X Macros"," . Dr. Dobbs. May 01, 2001",[39,2061,2062,2065,2067,2068,2073],{},[42,2063],{"id":2064},"AA.Bibliography-Meyers2004",[46,2066],{},"\n[Meyers 2004] Meyers, Randy. ",[42,2069,2072],{"href":2070,"rel":2071},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1080.pdf",[53],"Limited size_t"," WG14 N1080. September 2004.",[39,2075,2076,2079,2081,2082,2085],{},[42,2077],{"id":2078},"AA.Bibliography-Michael2004",[46,2080],{},"\n[Michael 2004] Michael, M.M. \"Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects.\" ",[57,2083,2084],{},"IEEE Transactions on Parallel and Distributed Systems, 15"," , 8 (2004).",[39,2087,2088,2091,2093,2094,2099],{},[42,2089],{"id":2090},"AA.Bibliography-Microsoft03",[46,2092],{},"\n[Microsoft 2003] Microsoft Security Bulletin MS03-026, \" ",[42,2095,2098],{"href":2096,"rel":2097},"http:\u002F\u002Fwww.microsoft.com\u002Ftechnet\u002Fsecurity\u002Fbulletin\u002FMS03-026.mspx",[53],"Buffer Overrun In RPC Interface Could Allow Code Execution (823980)"," .\" September 2003.",[39,2101,2102,2105,2107,2108,2113],{},[42,2103],{"id":2104},"AA.Bibliography-Microsoft07",[46,2106],{},"\n[Microsoft 2007] Microsoft. ",[42,2109,2112],{"href":2110,"rel":2111},"http:\u002F\u002Fmsdn2.microsoft.com\u002Fen-us\u002Flibrary\u002Ffw5abdx6%28VS.80%29.aspx",[53],"C Language Reference"," , 2007.",[39,2115,2116,2119,2121,2122,2127],{},[42,2117],{"id":2118},"AA.Bibliography-Miller2007",[46,2120],{},"\n[Miller 2007] Miller, Damien. \" ",[42,2123,2126],{"href":2124,"rel":2125},"http:\u002F\u002Fwww.openbsd.org\u002Fpapers\u002Fopenssh-measures-asiabsdcon2007.pdf",[53],"Security Measures in OpenSSH"," ,\" white paper. OpenSSH Project, 2007.",[39,2129,2130,2133,2135,2136,2139],{},[42,2131],{"id":2132},"AA.Bibliography-Miller99",[46,2134],{},"\n[Miller 1999] Miller, Todd C. & de Raadt, Theo. strlcpy and strlcat—Consistent, Safe, String Copy and Concatenation. In ",[57,2137,2138],{},"Proceedings of the FREENIX Track, 1999 USENIX Annual Technical Conference, June 6–11, 1999, Monterey, California, USA"," . Berkeley, CA: USENIX Association , 1999.",[39,2141,2142,2145,2147,2148,2153,2154,2157],{},[42,2143],{"id":2144},"AA.Bibliography-Miller04",[46,2146],{},"\n[Miller 2004] Miller, Mark C.; Reus, James F.; Matzke, Robb P.; Koziol, Quincey A.; & Cheng, Albert P. \" ",[42,2149,2152],{"href":2150,"rel":2151},"https:\u002F\u002Fwci.llnl.gov\u002Fcodes\u002Fsmartlibs\u002FUCRL-JRNL-208636.pdf",[53],"Smart Libraries: Best SQE Practices for Libraries with an Emphasis on Scientific Computing"," .\" In ",[57,2155,2156],{},"Proceedings of the Nuclear Explosives Code Developer's Conference"," . Livermore, CA: Lawrence Livermore National Laboratory, December 2004.",[39,2159,2160,2163,2165,2166,2174],{},[42,2161],{"id":2162},"AA.Bibliography-MISRA04",[46,2164],{},"\n[MISRA 2004] MISRA (Motor Industry Software Reliability Association). ",[57,2167,2168,2173],{},[42,2169,2172],{"href":2170,"rel":2171},"http:\u002F\u002Fwww.misra.org.uk\u002F",[53],"MISRA C"," : 2004 Guidelines for the Use of the C Language in Critical Systems"," . Nuneaton, UK: MIRA, 2004 (ISBN 095241564X).",[39,2176,2177,2180,2182,2183,2189,2190,2193],{},[42,2178],{"id":2179},"AA.Bibliography-MISRA08",[46,2181],{},"\n[MISRA 2008] MISRA. ",[42,2184,2186],{"href":2170,"rel":2185},[53],[57,2187,2188],{},"MISRA C++"," : ",[57,2191,2192],{},"2008 Guidelines for the Use of the C++ Language in Critical Systems"," . Nuneaton, UK: MIRA, 2008 (ISBN 978-906400-03-3 [paperback], ISBN 978-906400-04-0 [PDF]), 2008.",[39,2195,2196,2199,2201,2202,2209],{},[42,2197],{"id":2198},"AA.Bibliography-MISRA12",[46,2200],{},"\n[MISRA C:2012] MISRA. ",[57,2203,2204,2208],{},[42,2205,2207],{"href":2170,"rel":2206},[53],"MISRA C3"," : Guidelines for the Use of the C Language in Critical Systems 2012"," . Nuneaton, UK: MIRA, 2012. ISBN 978-1-906400-10-1 .",[39,2211,2212,2215,2217,2218,2223],{},[42,2213],{"id":2214},"AA.Bibliography-MIT04",[46,2216],{},"\n[MIT 2004] MIT (Massachusetts Institute of Technology). \" ",[42,2219,2222],{"href":2220,"rel":2221},"http:\u002F\u002Fweb.mit.edu\u002Fkerberos\u002Fadvisories\u002FMITKRB5-SA-2004-002-dblfree.txt",[53],"MIT krb5 Security Advisory 2004-002"," ,\" 2004.",[39,2225,2226,2229,2231,2232],{},[42,2227],{"id":2228},"AA.Bibliography-MIT05",[46,2230],{},"\n[MIT 2005] MIT. \" ",[42,2233,2236],{"href":2234,"rel":2235},"http:\u002F\u002Fweb.mit.edu\u002Fkerberos\u002Fwww\u002Fadvisories\u002FMITKRB5-SA-2005-003-recvauth.txt",[53],"MIT krb5 Security Advisory 2005-003.",[39,2238,2239,2242,2244,2245,2250],{},[42,2240],{"id":2241},"AA.Bibliography-MITRE",[46,2243],{},"\n[MITRE] MITRE. ",[42,2246,2249],{"href":2247,"rel":2248},"http:\u002F\u002Fcwe.mitre.org\u002F",[53],"Common Weakness Enumeration, Version 1.8."," February 2010.",[39,2252,2253,2256,2258,2259,184],{},[42,2254],{"id":2255},"AA.Bibliography-MITRE07",[46,2257],{},"\n[MITRE 2007] MITRE. ",[42,2260,2262],{"href":2247,"rel":2261},[53],"Common Weakness Enumeration, Draft 9",[39,2264,2265,2268,2270,2271,228],{},[42,2266],{"id":2267},"AA.Bibliography-MKS",[46,2269],{},"\n[MKS] MKS, Inc. ",[42,2272,2275],{"href":2273,"rel":2274},"http:\u002F\u002Fwww.mkssoftware.com\u002Fdocs\u002Fapi_index.asp\u002F",[53],"MKS Reference Pages",[39,2277,2278,2281,2283,2284,228],{},[42,2279],{"id":2280},"AA.Bibliography-MSDN",[46,2282],{},"\n[MSDN] ",[42,2285,2288],{"href":2286,"rel":2287},"http:\u002F\u002Fmsdn.microsoft.com\u002Fen-us\u002Fdefault.aspx",[53],"Microsoft Developer Network",[39,2290,2291,2294,2296,2297,756,2302,2034],{},[42,2292],{"id":2293},"AA.Bibliography-Murenin07",[46,2295],{},"\n[Murenin 2007] Murenin, Constantine A. ",[42,2298,2301],{"href":2299,"rel":2300},"http:\u002F\u002Fcnst.livejournal.com\u002F24040.html",[53],"cnst: 10-Year-Old Pointer-Arithmetic Bug in make(1) Is Now Gone, Thanks to malloc.conf and Some Debugging",[57,2303,2304],{},"LiveJournal",[39,2306,2307,2310,2312,2313,2320],{},[42,2308],{"id":2309},"AA.Bibliography-NASA-GB-1740.13",[46,2311],{},"\n[NASA-GB-1740.13] NASA Glenn Research Center, Office of Safety Assurance Technologies. ",[42,2314,2317],{"href":2315,"rel":2316},"http:\u002F\u002Fpbma.nasa.gov\u002Fdocs\u002Fpublic\u002Fpbma\u002Fgeneral\u002Fguidbook.doc",[53],[57,2318,2319],{},"NASA Software Safety Guidebook"," (NASA-GB-1740.13).",[39,2322,2323],{},[42,2324],{"id":2325},"AA.Bibliography-Myers2001",[39,2327,2328,2329,2332],{},"[Myers, 2001]  Meyers, Randy. ",[42,2330,2058],{"href":2056,"rel":2331},[53]," .  Dr. Dobbs.  May 01, 2001",[39,2334,2335,2338,2340,2341,2346],{},[42,2336],{"id":2337},"AA.Bibliography-NAI98",[46,2339],{},"\n[NAI 1998] Network Associates, Inc. ",[42,2342,2345],{"href":2343,"rel":2344},"http:\u002F\u002Fseclists.org\u002Fbugtraq\u002F1998\u002FAug\u002F0071.html",[53],"Bugtraq: Network Associates Inc. Advisory (OpenBSD)"," . 1998.",[39,2348,2349,2351,2312,2353,2320],{},[42,2350],{"id":2309},[46,2352],{},[42,2354,2356],{"href":2315,"rel":2355},[53],[57,2357,2319],{},[39,2359,2360,2363,2365,2366,477],{},[42,2361],{"id":2362},"AA.Bibliography-NIST06",[46,2364],{},"\n[NIST 2006] NIST. ",[42,2367,2370],{"href":2368,"rel":2369},"http:\u002F\u002Fsamate.nist.gov\u002FSRD\u002F",[53],[57,2371,2372],{},"SAMATE Reference Dataset",[39,2374,2375,2378,2380,2381,2386],{},[42,2376],{"id":2377},"AA.Bibliography-OpenBSD",[46,2379],{},"\n[OpenBSD] Berkley Software Design, Inc. ",[42,2382,2385],{"href":2383,"rel":2384},"http:\u002F\u002Fwww.openbsd.org\u002Fcgi-bin\u002Fman.cgi",[53],"Manual Pages"," . June 2008.",[39,2388,2389,2392,2394,2395,2405],{},[42,2390],{"id":2391},"AA.Bibliography-OpenGroup97a",[46,2393],{},"\n[Open Group 1997a] The Open Group. ",[42,2396,2399],{"href":2397,"rel":2398},"http:\u002F\u002Fwww.opengroup.org\u002Fonlinepubs\u002F7990989775\u002Ftoc.htm",[53],[57,2400,2401,2402,2404],{},"The Single UNIX ",[273,2403,275],{}," Specification, Version 2"," . 1997.",[39,2407,2408,2411,2413,2414,2421],{},[42,2409],{"id":2410},"AA.Bibliography-OpenGroup97b",[46,2412],{},"\n[Open Group 1997b] The Open Group. ",[42,2415,2418],{"href":2416,"rel":2417},"http:\u002F\u002Fwww.unix.org\u002Fwhitepapers\u002F64bit.html",[53],[57,2419,2420],{},"Go Solo 2—The Authorized Guide to Version 2 of the Single UNIX Specification"," . May 1997.",[39,2423,2424,136,2427,136,2429,136,2432,136,2434,2437,2439,2440,2447,2448,1073],{},[42,2425],{"id":2426},"AA.Bibliography-POSIX.1-2004",[42,2428],{"id":1054},[42,2430],{"id":2431},"AA.Bibliography-ISO\u002FIEC9945:2003",[42,2433],{"id":1409},[42,2435],{"id":2436},"AA.Bibliography-OpenGroup04",[46,2438],{},"\n[Open Group 2004] The Open Group. ",[42,2441,2444],{"href":2442,"rel":2443},"http:\u002F\u002Fwww.opengroup.org\u002Fonlinepubs\u002F009695399\u002Ftoc.htm",[53],[57,2445,2446],{},"The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition"," . 2004. (See also ",[42,2449,2451],{"href":2450},"#AA.Bibliography-IEEEStd1003.1-2004","IEEE Std 1003.1-2004",[39,2453,2454,136,2457,136,2459,136,2462,136,2464,2467,2469,2470,2477,2478,1073],{},[42,2455],{"id":2456},"AA.Bibliography-POSIX.1-2008",[42,2458],{"id":1081},[42,2460],{"id":2461},"AA.Bibliography-ISO\u002FIEC9945:2008",[42,2463],{"id":1409},[42,2465],{"id":2466},"AA.Bibliography-OpenGroup08",[46,2468],{},"\n[Open Group 2008] The Open Group. ",[42,2471,2474],{"href":2472,"rel":2473},"http:\u002F\u002Fwww.opengroup.org\u002Fonlinepubs\u002F9699919799\u002Ftoc.htm",[53],[57,2475,2476],{},"The Open Group Base Specifications Issue 7, IEEE Std 1003.1, 2008 Edition"," . 2008. (See also ",[42,2479,2481],{"href":2480},"#AA.Bibliography-IEEEStd1003.1-2008","IEEE Std 1003.1-2008",[39,2483,2484,2487,2489,2490,228],{},[42,2485],{"id":2486},"AA.Bibliography-OpenMP",[46,2488],{},"\n[OpenMP] ",[42,2491,2494,2495,2497],{"href":2492,"rel":2493},"http:\u002F\u002Fopenmp.org\u002Fwp\u002F",[53],"The OpenMP API ",[273,2496,275],{}," Specification for Parallel Programming",[39,2499,2500,2503,2505,2506,2511],{},[42,2501],{"id":2502},"AA.Bibliography-OWASPDoubleFree",[46,2504],{},"\n[OWASP Double Free] Open Web Application Security Project, \" ",[42,2507,2510],{"href":2508,"rel":2509},"http:\u002F\u002Fwww.owasp.org\u002Findex.php\u002FDouble_Free",[53],"Double Free"," .\"",[39,2513,2514,2517,2519,2520,2511],{},[42,2515],{"id":2516},"AA.Bibliography-OWASPFreedMemory",[46,2518],{},"\n[OWASP Freed Memory] Open Web Application Security Project, \" ",[42,2521,2524],{"href":2522,"rel":2523},"http:\u002F\u002Fwww.owasp.org\u002Findex.php\u002FUsing_freed_memory",[53],"Using Freed Memory",[39,2526,2527,2530,2532,2533,2538],{},[42,2528],{"id":2529},"AA.Bibliography-Pethia03",[46,2531],{},"\n[Pethia 2003] Pethia, Richard D. \" ",[42,2534,2537],{"href":2535,"rel":2536},"http:\u002F\u002Fweb.archive.org\u002Fweb\u002F20030919012916\u002Fhttp:\u002F\u002Fwww.cert.org\u002Fcongressional_testimony\u002FPethia-Testimony-9-10-2003\u002F",[53],"Viruses and Worms: What Can We Do About Them?"," \" September 10, 2003.",[39,2540,2541,2544,2546,2547,55,2552,2555],{},[42,2542],{"id":2543},"AA.Bibliography-Pfaff04",[46,2545],{},"\n[Pfaff 2004] Pfaff, Ken Thompson. \" ",[42,2548,2551],{"href":2549,"rel":2550},"http:\u002F\u002Fgroups.google.com\u002Fgroup\u002Fcomp.lang.c\u002Fbrowse_thread\u002Fthread\u002F8983d8d729244f2b\u002Fea0e2972775a1114#ea0e2972775a1114",[53],"Casting (time_t)(-1)",[57,2553,2554],{},"Google Groups comps.lang.c"," , March 2, 2004.",[39,2557,2558,2561,2563,2564,2569,2570,2573],{},[42,2559],{"id":2560},"AA.Bibliography-Pike93",[46,2562],{},"\n[Pike 1993] Pike, Rob & Thompson, Ken. \" ",[42,2565,2568],{"href":2566,"rel":2567},"http:\u002F\u002Fplan9.bell-labs.com\u002Fsys\u002Fdoc\u002Futf.pdf",[53],"Hello World."," \" ",[57,2571,2572],{},"Proceedings of the USENIX Winter 1993 Technical Conference"," , San Diego, CA, January 25–29, 1993, pp3 43–50.",[39,2575,2576,2579,2581,2582,55,2587,2591],{},[42,2577],{"id":2578},"AA.Bibliography-Plakosh05",[46,2580],{},"\n[Plakosh 2005] Plakosh, Dan. ",[42,2583,2586],{"href":2584,"rel":2585},"https:\u002F\u002Fbuildsecurityin.us-cert.gov\u002Fdaisy\u002Fbsi\u002Farticles\u002Fknowledge\u002Fcoding\u002F476.html",[53],"\"Consistent Memory Management Conventions",[42,2588,476],{"href":2589,"rel":2590},"https:\u002F\u002Fbuildsecurityin.us-cert.gov\u002Fbsi\u002Fhome.html",[53]," , 2005.",[39,2593,2594,2597,2599,2600,2603],{},[42,2595],{"id":2596},"AA.Bibliography-Plum85",[46,2598],{},"\n[Plum 1985] Plum, Thomas. ",[57,2601,2602],{},"Reliable Data Structures in C"," . Kamuela, HI: Plum Hall, Inc., 1985 (ISBN 0-911537-04-X).",[39,2605,2606,2609,2611,2612,2615],{},[42,2607],{"id":2608},"AA.Bibliography-Plum89",[46,2610],{},"\n[Plum 1989] Plum, Thomas & Saks, Dan. ",[57,2613,2614],{},"C Programming Guidelines, 2nd ed"," . Kamuela, HI: Plum Hall, 1989 (ISBN 0911537074).",[39,2617,2618,2621,2623,2624,2627],{},[42,2619],{"id":2620},"AA.Bibliography-Plum91",[46,2622],{},"\n[Plum 1991] Plum, Thomas. ",[57,2625,2626],{},"C++ Programming"," . Kamuela, HI: Plum Hall, 1991 (ISBN 0911537104).",[39,2629,2630,2633,2635,2636,2641],{},[42,2631],{"id":2632},"AA.Bibliography-Plum08",[46,2634],{},"\n[Plum 2008] Plum, Thomas. \" ",[42,2637,2640],{"href":2638,"rel":2639},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1330.pdf",[53],"Static Assertions"," .\" June 2008.",[39,2643,2644,2647,2649,2650,756,2655,2658],{},[42,2645],{"id":2646},"AA.Bibliography-Plum12",[46,2648],{},"\n[Plum 2012] Plum, Thomas. ",[42,2651,2654],{"href":2652,"rel":2653},"http:\u002F\u002Fwww.drdobbs.com\u002Fcpp\u002F232800444",[53],"C Finally Gets a New Standard",[57,2656,2657],{},"Dr. Dobb's"," , 2012.",[39,2660,2661,2664,2666,2667,2670,2671,2676,2677,1073],{},[42,2662],{"id":2663},"AA.Bibliography-Redwine06",[46,2665],{},"\n[Redwine 2006] Redwine, Samuel T., Jr., ed. ",[57,2668,2669],{},"Secure Software Assurance: A Guide to the Common Body of Knowledge to Produce, Acquire, and Sustain Secure Software Version 1.1"," . U.S. Department of Homeland Security, September 2006. (See ",[42,2672,2675],{"href":2673,"rel":2674},"https:\u002F\u002Fbuildsecurityin.us-cert.gov\u002Fdaisy\u002Fbsi\u002Fresources\u002Fdhs\u002F95.html",[53],"Software Assurance Common Body of Knowledge"," on ",[42,2678,476],{"href":2589,"rel":2679},[53],[39,2681,2682,2685,2687,2688,2693],{},[42,2683],{"id":2684},"AA.Bibliography-Roelker04",[46,2686],{},"\n[Roelker 2004] Roelker, Daniel. \" ",[42,2689,2692],{"href":2690,"rel":2691},"http:\u002F\u002Fwww.snort.org\u002Fassets\u002F164\u002Fsf_HTTP_IDS_evasions.pdf",[53],"HTTP IDS Evasions Revisited"," .\" September 2004.",[39,2695,2696,2699,2701,2702,2707],{},[42,2697],{"id":2698},"AA.Bibliography-RUS-CERT",[46,2700],{},"\n[RUS-CERT] RUS-CERT Advisory 2002-08:02, \" ",[42,2703,2706],{"href":2704,"rel":2705},"http:\u002F\u002Fcert.uni-stuttgart.de\u002Fadvisories\u002Fcalloc.php",[53],"Flaw in calloc and Similar Routines."," \" 2002.",[39,2709,2710,2713,2715,2716,55,2721,2723],{},[42,2711],{"id":2712},"AA.Bibliography-Saks99",[46,2714],{},"\n[Saks 1999] Saks, Dan. \" ",[42,2717,2720],{"href":2718,"rel":2719},"http:\u002F\u002Fwww.dansaks.com\u002Farticles\u002F1999-02%20const%20T%20vs%20T%20const.pdf",[53],"const T vs.T const",[57,2722,1662],{}," , February 1999, pp. 13–16.",[39,2725,2726,2729,2731,2732,136,2737],{},[42,2727],{"id":2728},"AA.Bibliography-Saks00",[46,2730],{},"\n[Saks 2000] Saks, Dan. \" ",[42,2733,2736],{"href":2734,"rel":2735},"http:\u002F\u002Fwww.embedded.com\u002Felectronics-blogs\u002Fprogramming-pointers\u002F4403282\u002FNumeric-Literals",[53],"Numeric Literals",[42,2738,2741,2742,2744],{"href":2739,"rel":2740},"http:\u002F\u002Fwww.embedded.com\u002F2000\u002F0009\u002F0009pp.htm",[53],".\" ",[57,2743,1662],{}," , September 2000.",[39,2746,2747,2750,2752,2753,136,2758],{},[42,2748],{"id":2749},"AA.Bibliography-Saks01a",[46,2751],{},"\n[Saks 2001a] Saks, Dan. \" ",[42,2754,2757],{"href":2755,"rel":2756},"http:\u002F\u002Fwww.embedded.com\u002Fstory\u002FOEG20011016S0116",[53],"Symbolic Constants",[42,2759,2741,2761,2764],{"href":2755,"rel":2760},[53],[57,2762,2763],{},"Embedded Systems Design"," , November 2001.",[39,2766,2767,2770,2772,2773,55,2778,2764],{},[42,2768],{"id":2769},"AA.Bibliography-Saks01b",[46,2771],{},"\n[Saks 2001b] Saks, Dan. \" ",[42,2774,2777],{"href":2775,"rel":2776},"http:\u002F\u002Fwww.embedded.com\u002Fcolumns\u002Fprogrammingpointers\u002F9900402",[53],"Enumeration Constants vs. Constant Objects",[57,2779,2763],{},[39,2781,2782,2785,2787,2788,55,2793,2795],{},[42,2783],{"id":2784},"AA.Bibliography-Saks02",[46,2786],{},"\n[Saks 2002] Saks, Dan. \" ",[42,2789,2792],{"href":2790,"rel":2791},"http:\u002F\u002Fwww.embedded.com\u002Fstory\u002FOEG20020124S0117",[53],"Symbolic Constant Expressions",[57,2794,2763],{}," , February 2002.",[39,2797,2798,2801,2803,2804,55,2809,2811],{},[42,2799],{"id":2800},"AA.Bibliography-Saks05",[46,2802],{},"\n[Saks 2005] Saks, Dan. \" ",[42,2805,2808],{"href":2806,"rel":2807},"http:\u002F\u002Fwww.embedded.com\u002Fcolumns\u002Fprogrammingpointers\u002F164900888?_requestid=287187",[53],"Catching Errors Early with Compile-Time Assertions",[57,2810,2763],{}," , June 2005.",[39,2813,2814,2817,2819,2820,2569,2825,2827],{},[42,2815],{"id":2816},"AA.Bibliography-Saks07a",[46,2818],{},"\n[Saks 2007a] Saks, Dan. \" ",[42,2821,2824],{"href":2822,"rel":2823},"http:\u002F\u002Fwww.embedded.com\u002Fcolumns\u002Fprogrammingpointers\u002F9900661?_requestid=481957",[53],"Sequence Points.",[57,2826,2763],{}," , July 1, 2002.",[39,2829,2830,2833,2835,2836,2569,2841,2843],{},[42,2831],{"id":2832},"AA.Bibliography-Saks07b",[46,2834],{},"\n[Saks 2007b] Saks, Dan. \" ",[42,2837,2840],{"href":2838,"rel":2839},"https:\u002F\u002Fwww.embedded.com\u002Fbail-return-jump-or-throw\u002F",[53],"Bail, Return, Jump, or . . . Throw?",[57,2842,2763],{}," , March 2007.",[39,2845,2846,2849,2851,2852,2569,2857,2859],{},[42,2847],{"id":2848},"AA.Bibliography-Saks07c",[46,2850],{},"\n[Saks 2007c] Saks, Dan. \" ",[42,2853,2856],{"href":2854,"rel":2855},"http:\u002F\u002Fwww.embedded.com\u002Felectronics-blogs\u002Fprogramming-pointers\u002F4007211\u002FStandard-C-s-pointer-difference-type",[53],"Standard C's Pointer Difference Type.",[57,2858,2763],{}," , October 2007.",[39,2861,2862,2865,2867],{},[42,2863],{"id":2864},"AA.Bibliography-Saks08",[46,2866],{},"\n[Saks 2008] Saks, Dan & Dewhurst, Stephen C. \"Sooner Rather Than Later: Static Programming Techniques for C++\" (presentation). March 2008.",[39,2869,2870,2873,2875,2876,55,2881,2884],{},[42,2871],{"id":2872},"AA.Bibliography-Saltzer74",[46,2874],{},"\n[Saltzer 1974] Saltzer, J. H. \" ",[42,2877,2880],{"href":2878,"rel":2879},"http:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.208.4289&rep=rep1&type=pdf",[53],"Protection and the Control of Information Sharing in Multics",[57,2882,2883],{},"Communications of the ACM 17"," , 7 (July 1974): 388–402.",[39,2886,2887,2890,2892,2893,55,2898,2901],{},[42,2888],{"id":2889},"AA.Bibliography-Saltzer75",[46,2891],{},"\n[Saltzer 1975] Saltzer, J. H. & Schroeder, M. D. \" ",[42,2894,2897],{"href":2895,"rel":2896},"http:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.126.9257&rep=rep1&type=pdf",[53],"The Protection of Information in Computer Systems",[57,2899,2900],{},"Proceedings of the IEEE 63"," , 9 (September 1975): 1278–1308.",[39,2903,2904,2907,2909,2910,55,2915,2918],{},[42,2905],{"id":2906},"AA.Bibliography-Schwarz05",[46,2908],{},"\n[Schwarz 2005] Schwarz, B.; Wagner, Hao Chen; Morrison, D.; West, G.; Lin, J.; & Tu, J. Wei. \" ",[42,2911,2914],{"href":2912,"rel":2913},"http:\u002F\u002Fciteseerx.ist.psu.edu\u002Fviewdoc\u002Fdownload?doi=10.1.1.169.2051&rep=rep1&type=pdf",[53],"Model Checking an Entire Linux Distribution for Security Violations",[57,2916,2917],{},"Proceedings of the 21st Annual Computer Security Applications Conference"," , December 2005 (ISSN 1063-9527; ISBN 0-7695-2461-3).",[39,2920,2921,2924,2926,2927,2934],{},[42,2922],{"id":2923},"AA.Bibliography-Seacord03",[46,2925],{},"\n[Seacord 2003] Seacord, Robert C.; Plakosh, Daniel; & Lewis, Grace A. ",[42,2928,2931],{"href":2929,"rel":2930},"http:\u002F\u002Fwww.informit.com\u002Fstore\u002Fproduct.aspx?isbn=0321118847",[53],[57,2932,2933],{},"Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices"," . Boston: Addison-Wesley, 2003.",[39,2936,2937,136,2940,136,2943,2946,2948,2949,2952,2953,2957],{},[42,2938],{"id":2939},"AA.Bibliography-Seacord05",[42,2941],{"id":2942},"AA.Bibliography-Seacord05a",[42,2944],{"id":2945},"AA.Bibliography-Seacord2005a",[46,2947],{},"\n[Seacord 2005a] Seacord, Robert C. ",[57,2950,2951],{},"Secure Coding in C and C++"," . Boston: Addison-Wesley, 2005. (See ",[42,2954,2955],{"href":2955,"rel":2956},"http:\u002F\u002Fwww.cert.org\u002Fbooks\u002Fsecure-coding",[53]," for news and errata.)",[39,2959,2960,2963,2965,2966,2969,2970,2973],{},[42,2961],{"id":2962},"AA.Bibliography-Seacord05b",[46,2964],{},"\n[Seacord 2005b] Seacord, Robert C. \"Managed String Library for C, C\u002FC++.\" ",[57,2967,2968],{},"Users Journal"," , ",[57,2971,2972],{},"23"," , 10 (October 2005): 30–34.",[39,2975,2976,2979,2981,2982,55,2987,909],{},[42,2977],{"id":2978},"AA.Bibliography-Seacord05c",[46,2980],{},"\n[Seacord 2005c] Seacord, Robert C. \" ",[42,2983,2986],{"href":2984,"rel":2985},"http:\u002F\u002Fwww.cert.org\u002Fbooks\u002Fsecure-coding\u002FLWM%203-11%20%28Seacord%29.pdf",[53],"Variadic Functions: How They Contribute to Security Vulnerabilities and How to Fix Them",[57,2988,908],{},[39,2990,2991,2994,2996,2997,3002,3003,3006],{},[42,2992],{"id":2993},"AA.Bibliography-Seacord2013a",[46,2995],{},"\n[Seacord 2013a] Seacord, Robert C. “ ",[42,2998,3001],{"href":2999,"rel":3000},"http:\u002F\u002Fwww.informit.com\u002Farticles\u002Farticle.aspx?p=2088511",[53],"C Secure Coding Rules: Past, Present, and Future"," .” ",[57,3004,3005],{},"InformIT"," , June 26, 2013.",[39,3008,3009,136,3012,3015,3017,3018,3020,3021,2957],{},[42,3010],{"id":3011},"AA.Bibliography-Seacord2013",[42,3013],{"id":3014},"AA.Bibliography-Seacord13",[46,3016],{},"\n[Seacord 2013b] Seacord, Robert C. ",[57,3019,2951],{}," . Boston: Addison-Wesley, 2013. (See ",[42,3022,2955],{"href":2955,"rel":3023},[53],[39,3025,3026,3029,3031,3032,3037],{},[42,3027],{"id":3028},"AA.Bibliography-Secunia",[46,3030],{},"\n[Secunia] Secunia Advisory SA10635, \" ",[42,3033,3036],{"href":3034,"rel":3035},"http:\u002F\u002Fsecunia.com\u002Fadvisories\u002F10635\u002F",[53],"HP-UX calloc Buffer Size Miscalculation Vulnerability."," \" 2004.",[39,3039,3040,3043,3045,3046,3051],{},[42,3041],{"id":3042},"AA.Bibliography-SecurityFocus07",[46,3044],{},"\n[SecurityFocus 2007] SecurityFocus. \" ",[42,3047,3050],{"href":3048,"rel":3049},"http:\u002F\u002Fwww.securityfocus.com\u002Fbid\u002F10538\u002Fdiscuss",[53],"Linux Kernel Floating Point Exception Handler Local Denial of Service Vulnerability"," .\" 2001.",[39,3053,3054,3057,3059,3060,3065],{},[42,3055],{"id":3056},"AA.Bibliography-SecuriTeam07",[46,3058],{},"\n[SecuriTeam 2007] SecuriTeam. \" ",[42,3061,3064],{"href":3062,"rel":3063},"http:\u002F\u002Fwww.securiteam.com\u002Fwindowsntfocus\u002F5MP0D0UKKO.html",[53],"Microsoft Visual C++ 8.0 Standard Library Time Functions Invalid Assertion DoS (Problem 3000)"," .\" February 13, 2007.",[39,3067,3068,3071,3073,3074,3081],{},[42,3069],{"id":3070},"AA.Bibliography-Sloss04",[46,3072],{},"\n[Sloss 2004] Sloss, Andrew; Symes, Dominic; & Wright, Chris. ",[42,3075,3078],{"href":3076,"rel":3077},"http:\u002F\u002Fwww.arm.com\u002Fdocumentation\u002Fbooks\u002F4975.html",[53],[57,3079,3080],{},"ARM System Developer's Guide"," . San Francisco: Elsevier\u002FMorgan Kauffman, 2004 (ISBN-10: 1558608745; ISBN-13: 978-1558608740).",[39,3083,3084,3087,3089,3090,548],{},[42,3085],{"id":3086},"AA.Bibliography-Spinellis06",[46,3088],{},"\n[Spinellis 2006] Spinellis, Diomidis. ",[42,3091,3094],{"href":3092,"rel":3093},"http:\u002F\u002Fwww.spinellis.gr\u002Fcodequality",[53],[57,3095,3096],{},"Code Quality: The Open Source Perspective",[39,3098,3099,3102,3104,3105,3110],{},[42,3100],{"id":3101},"AA.Bibliography-StackOvflw09",[46,3103],{},"\n[StackOvflw 2009] StackOverflow.com. ",[42,3106,3109],{"href":3107,"rel":3108},"http:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F559061\u002Fshould-i-return-true-false-values-from-a-c-function",[53],"\"Should I return TRUE \u002F FALSE values from a C function?\""," User Questions, March 15, 2010.",[39,3112,3113,3116,3118,3119,55,3124,3127],{},[42,3114],{"id":3115},"AA.Bibliography-Steele77",[46,3117],{},"\n[Steele 1977] Steele, G. L. \" ",[42,3120,3123],{"href":3121,"rel":3122},"http:\u002F\u002Fdoi.acm.org\u002F10.1145\u002F956641.956647",[53],"Arithmetic shifting considered harmful",[57,3125,3126],{},"SIGPLAN Not."," 12, 11 (November 1977): 61–69.",[39,3129,3130,3133,3135,3136,3139],{},[42,3131],{"id":3132},"AA.Bibliography-Stevens05",[46,3134],{},"\n[Stevens 2005] Stevens, W. Richard. ",[57,3137,3138],{},"Advanced Programming in the UNIX Environment"," . Boston: Addison-Wesley, 1995 (ISBN 032152594-9).",[39,3141,3142,3145,3147,3148,3151],{},[42,3143],{"id":3144},"AA.Bibliography-Summit95",[46,3146],{},"\n[Summit 1995] Summit, Steve. ",[57,3149,3150],{},"C Programming FAQs: Frequently Asked Questions"," . Boston: Addison-Wesley, 1995 (ISBN 0201845199).",[39,3153,3154,3157,3159,3160,198],{},[42,3155],{"id":3156},"AA.Bibliography-Summit05",[46,3158],{},"\n[Summit 2005] Summit, Steve. ",[42,3161,3164],{"href":3162,"rel":3163},"http:\u002F\u002Fc-faq.com\u002F",[53],[57,3165,3166],{},"comp.lang.c Frequently Asked Questions",[39,3168,3169,136,3172,3175,3177,3178,3183],{},[42,3170],{"id":3171},"AA.Bibliography-Sun",[42,3173],{"id":3174},"AA.Bibliography-Sun93",[46,3176],{},"\n[Sun 1993] Sun Microsystems. ",[42,3179,3182],{"href":3180,"rel":3181},"http:\u002F\u002Fwww.securityfocus.com\u002Fadvisories\u002F198",[53],"Sun Security Bulletin #00122"," 1993.",[39,3185,3186,3189,3191,3192,3197],{},[42,3187],{"id":3188},"AA.Bibliography-Sun05",[46,3190],{},"\n[Sun 2005] Sun Microsystems. ",[42,3193,3196],{"href":3194,"rel":3195},"http:\u002F\u002Fdocs.sun.com\u002Fsource\u002F819-3688\u002F",[53],"C User's Guide"," . 819-3688-10. Sun Microsystems, 2005.",[39,3199,3200,3203,3205,3206,3214],{},[42,3201],{"id":3202},"AA.Bibliography-Sutter04",[46,3204],{},"\n[Sutter 2004] Sutter, Herb & Alexandrescu, Andrei. ",[57,3207,3208,3213],{},[42,3209,3212],{"href":3210,"rel":3211},"http:\u002F\u002Fwww.gotw.ca\u002Fpublications\u002Fc++cs.htm",[53],"C++ Coding Standards"," : 101 Rules, Guidelines, and Best Practices"," . Boston: Addison-Wesley Professional, 2004 (ISBN 0321113586).",[39,3216,3217,3220,3222,3223,3228],{},[42,3218],{"id":3219},"AA.Bibliography-Tsafrir08",[46,3221],{},"\n[Tsafrir 2008] Tsafrir, Dan; Da Silva, Dilma; & Wagner, David. ",[42,3224,3227],{"href":3225,"rel":3226},"http:\u002F\u002Fwww.eecs.berkeley.edu\u002F%7Edaw\u002Fpapers\u002Fsetuid-login08b.pdf",[53],"The Murky Issue of Changing Process Identity: Revising \"Setuid Demystified.\""," USENIX, June 2008, pp. 55–66",[39,3230,3231,3234,3236,3237,3245],{},[42,3232],{"id":3233},"AA.Bibliography-Unicode06",[46,3235],{},"\n[Unicode 2006] The Unicode Consortium. ",[57,3238,3239,3244],{},[42,3240,3243],{"href":3241,"rel":3242},"http:\u002F\u002Fwww.unicode.org\u002Fstandard\u002Fstandard.html",[53],"The Unicode Standard"," , Version 5.0"," , 5th ed. Boston: Addison-Wesley Professional, 2006 (ISBN: 0321480910).",[39,3247,3248,3251,3253,3254,228],{},[42,3249],{"id":3250},"AA.Bibliography-Unicode12",[46,3252],{},"\n[Unicode 2012] The Unicode Consortium. ",[57,3255,3256],{},[42,3257,3260],{"href":3258,"rel":3259},"http:\u002F\u002Fwww.unicode.org\u002Fversions\u002FUnicode6.2.0\u002F",[53],"The Unicode Standard, Version 6.2",[39,3262,3263,3266,3268,3269,3272],{},[42,3264],{"id":3265},"AA.Bibliography-UNIX92",[46,3267],{},"\n[UNIX 1992] UNIX System Laboratories. ",[57,3270,3271],{},"System V Interface Definition"," , 3rd ed. Wokingham, MA: Addison-Wesley, 1992.",[39,3274,3275,3278,3280,3281,3286],{},[42,3276],{"id":3277},"AA.Bibliography-vandeVoort07",[46,3279],{},"\n[van de Voort 2007] van de Voort, Marco. ",[42,3282,3285],{"href":3283,"rel":3284},"http:\u002F\u002Fwww.stack.nl\u002F%7Emarcov\u002Fbuildfaq.pdf",[53],"Development Tutorial (a.k.a Build FAQ)"," . January 29, 2007.",[39,3288,3289],{},[42,3290],{"id":3291},"AA.Bibliography-Vanegue2010",[39,3293,3294,3295,3300],{},"[Vanegue 2010] Vanegue, Julien. ",[42,3296,3299],{"href":3297,"rel":3298},"http:\u002F\u002Fseclists.org\u002Fdailydave\u002F2010\u002Fq2\u002F27",[53],"Automated Vulnerability Analysis of Zero-Sized Head Allocations"," . Hackito Ergo Sum (HES'10) Conference, Paris, April 10, 2010.",[39,3302,3303,3306,3308,3309,477],{},[42,3304],{"id":3305},"AA.Bibliography-vanSprundel06",[46,3307],{},"\n[van Sprundel 2006] van Sprundel, Ilja. ",[42,3310,3313],{"href":3311,"rel":3312},"http:\u002F\u002Fwww.slideshare.net\u002Famiable_indian\u002Funusual-bugs",[53],"Unusualbugs",[39,3315,3316,3319,3321,3322,3327],{},[42,3317],{"id":3318},"AA.Bibliography-Viega01",[46,3320],{},"\n[Viega 2001] Viega, John. ",[42,3323,3326],{"href":3324,"rel":3325},"http:\u002F\u002Fwww.cgisecurity.com\u002Flib\u002Fprotecting-sensitive-data.html",[53],"Protecting Sensitive Data in Memory"," . February 2001.",[39,3329,3330,3333,3335,3336,3339],{},[42,3331],{"id":3332},"AA.Bibliography-Viega03",[46,3334],{},"\n[Viega 2003] Viega, John & Messier, Matt. ",[57,3337,3338],{},"Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Networking, Input Validation & More"," . Sebastopol, CA: O'Reilly, 2003 (ISBN 0-596-00394-3).",[39,3341,3342,3345,3347,3348,3353],{},[42,3343],{"id":3344},"AA.Bibliography-Viega05",[46,3346],{},"\n[Viega 2005] Viega, John. ",[42,3349,3352],{"href":3350,"rel":3351},"http:\u002F\u002Fwww.securesoftware.com\u002Fprocess\u002F",[53],"CLASP Reference Guide Volume 1.1."," Secure Software, 2005.",[39,3355,3356,3359,3361,3362,2969,3367,3370],{},[42,3357],{"id":3358},"AA.Bibliography-VU#159523",[46,3360],{},"\n[VU#159523] Giobbi, Ryan. Vulnerability Note ",[42,3363,3366],{"href":3364,"rel":3365},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F159523",[53],"VU#159523",[57,3368,3369],{},"Adobe Flash Player Integer Overflow Vulnerability."," April 2008.",[39,3372,3373,3376,3378,3379,2969,3384,3370],{},[42,3374],{"id":3375},"AA.Bibliography-VU#162289",[46,3377],{},"\n[VU#162289] Dougherty, Chad. Vulnerability Note ",[42,3380,3383],{"href":3381,"rel":3382},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F162289",[53],"VU#162289",[57,3385,3386],{},"GCC Silently Discards Some Wraparound Checks.",[39,3388,3389,3392,3394,3395,2969,3400,413],{},[42,3390],{"id":3391},"AA.Bibliography-VU196240",[46,3393],{},"\n[VU#196240] Taschner, Chris & Manion, Art. Vulnerability Note ",[42,3396,3399],{"href":3397,"rel":3398},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F196240",[53],"VU#196240",[57,3401,3402],{},"Sourcefire Snort DCE\u002FRPC Preprocessor Does Not Properly Reassemble Fragmented Packets",[39,3404,3405,3408,3410,3411,2969,3416,3419],{},[42,3406],{"id":3407},"AA.Bibliography-VU286468",[46,3409],{},"\n[VU#286468] Burch, Hal. Vulnerability Note ",[42,3412,3415],{"href":3413,"rel":3414},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F286468",[53],"VU#286468",[57,3417,3418],{},"Ettercap Contains a Format String Error in the \"curses_msg()\" Function."," 2007.",[39,3421,3422,3425,3427,3428,2969,3433,3436],{},[42,3423],{"id":3424},"AA.Bibliography-VU439395",[46,3426],{},"\n[VU#439395] Lipson, Howard. Vulnerability Note ",[42,3429,3432],{"href":3430,"rel":3431},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F439395",[53],"VU#439395",[57,3434,3435],{},"Apache Web Server Performs Case Sensitive Filtering on Mac OS X HFS+ Case Insensitive Filesystem."," 2001.",[39,3438,3439,3442,3444,3445,2969,3450,3419],{},[42,3440],{"id":3441},"AA.Bibliography-VU551436",[46,3443],{},"\n[VU#551436] Giobbi, Ryan. Vulnerability Note ",[42,3446,3449],{"href":3447,"rel":3448},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F551436",[53],"VU#551436",[57,3451,3452],{},"Mozilla Firefox SVG Viewer Vulnerable to Buffer Overflow.",[39,3454,3455,3458,3460,3461,2969,3466,156],{},[42,3456],{"id":3457},"AA.Bibliography-VU568148",[46,3459],{},"\n[VU#568148] Finlay, Ian A. & Morda, Damon G. Vulnerability Note ",[42,3462,3465],{"href":3463,"rel":3464},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F568148",[53],"VU#568148",[57,3467,3468],{},"Microsoft Windows RPC Vulnerable to Buffer Overflow",[39,3470,3471,3474,3476,3477,2969,3482,3485],{},[42,3472],{"id":3473},"AA.Bibliography-VU623332",[46,3475],{},"\n[VU#623332] Mead, Robert. Vulnerability Note ",[42,3478,3481],{"href":3479,"rel":3480},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F623332",[53],"VU#623332",[57,3483,3484],{},"MIT Kerberos 5 Contains Double-Free Vulnerability in \"krb5_recvauth()\" Function."," 2005.",[39,3487,3488,3491,3493,3494,2969,3499,3419],{},[42,3489],{"id":3490},"AA.Bibliography-VU649732",[46,3492],{},"\n[VU#649732] Gennari, Jeff. Vulnerability Note ",[42,3495,3498],{"href":3496,"rel":3497},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F649732",[53],"VU#649732",[57,3500,3501],{},"Samba AFS ACL Mapping VFS Plug-In Format String Vulnerability.",[39,3503,3504,3507,3509,3510,2969,3515,3518],{},[42,3505],{"id":3506},"AA.Bibliography-VU654390",[46,3508],{},"\n[VU#654390] Rafail, Jason A. Vulnerability Note ",[42,3511,3514],{"href":3512,"rel":3513},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F654390",[53],"VU#654390",[57,3516,3517],{},"ISC DHCP Contains C Includes That Define vsnprintf() to vsprintf() Creating Potential Buffer Overflow Conditions"," . June 2004.",[39,3520,3521,3524,3526,3527,2969,3532,3535],{},[42,3522],{"id":3523},"AA.Bibliography-VU720951",[46,3525],{},"\n[VU#720951] Dorman, Will. Vulnerability Note ",[42,3528,3531],{"href":3529,"rel":3530},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F720951",[53],"VU#720951",[57,3533,3534],{},"OpenSSL TLS Heartbeat Extension Read Overflow Discloses Sensitive Information"," . April 2014",[39,3537,3538,3541,3543,3544,2969,3549,3552],{},[42,3539],{"id":3540},"AA.Bibliography-VU743092",[46,3542],{},"\n[VU#743092] Rafail, Jason A. & Havrilla, Jeffrey S. Vulnerability Note ",[42,3545,3548],{"href":3546,"rel":3547},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F743092",[53],"VU#743092",[57,3550,3551],{},"realpath(3) Function Contains Off-by-One Buffer Overflow."," July 2003.",[39,3554,3555,3558,3560,3561,2969,3566,3569],{},[42,3556],{"id":3557},"AA.Bibliography-VU834865",[46,3559],{},"\n[VU#834865] Gennari, Jeff. Vulnerability Note ",[42,3562,3565],{"href":3563,"rel":3564},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F834865",[53],"VU#834865",[57,3567,3568],{},"Sendmail Signal I\u002FO Race Condition"," . March 2008.",[39,3571,3572],{},[42,3573],{"id":3574},"AA.Bibliography-VU837857",[39,3576,3577,3578,2969,3583,3586],{},"[VU#837857] Dougherty, Chad. Vulnerability Note ",[42,3579,3582],{"href":3580,"rel":3581},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F837857",[53],"VU#837857",[57,3584,3585],{},"SX.Org Server Fails to Properly Test for Effective User ID"," . August 2006.",[39,3588,3589],{},[42,3590],{"id":3591},"AA.Bibliography-VU881872",[39,3593,3594,3595,2969,3600,3419],{},"[VU#881872] Manion, Art & Taschner, Chris. Vulnerability Note ",[42,3596,3599],{"href":3597,"rel":3598},"http:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fid\u002F881872",[53],"VU#881872",[57,3601,3602],{},"Sun Solaris Telnet Authentication Bypass Vulnerability.",[39,3604,3605,3608,3610,3611,3616],{},[42,3606],{"id":3607},"AA.Bibliography-VU925211",[46,3609],{},"\n[VU#925211] Dougherty, Chad. Vulnerability Note ",[42,3612,3615],{"href":3613,"rel":3614},"http:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fid\u002F925211",[53],"VU#925211"," , “Debian and Ubuntu OpenSSL Packages Contain a Predictable Random Number Generator.” June 2008.",[39,3618,3619],{},[42,3620],{"id":3621},"AA.Bibliography-Walfridsson03",[39,3623,3624,3625,3630],{},"[Walfridsson 2003] Walfridsson, Krister. ",[42,3626,3629],{"href":3627,"rel":3628},"http:\u002F\u002Fmail-index.netbsd.org\u002Ftech-kern\u002F2003\u002F08\u002F11\u002F0001.html",[53],"Aliasing, Pointer Casts and GCC 3.3"," . August 2003.",[39,3632,3633],{},[42,3634],{"id":3635},"AA.Bibliography-Walls2006",[39,3637,3638,3639,3644],{},"[Walls 2006] Walls, Douglas. ",[42,3640,3643],{"href":3641,"rel":3642},"http:\u002F\u002Fwww.oracle.com\u002Ftechnetwork\u002Fserver-storage\u002Fsolaris\u002Fcc-restrict-139391.html",[53],"How to Use the Qualifier in C"," .  Sun ONE Tools Group, Sun Microsystems. March 2006.",[39,3646,3647,3650,3652,3653,3660],{},[42,3648],{"id":3649},"AA.Bibliography-Wang12",[46,3651],{},"\n[Wang 2012] Wang, Xi. ",[42,3654,3657],{"href":3655,"rel":3656},"http:\u002F\u002Fkqueue.org\u002Fblog\u002F2012\u002F06\u002F25\u002Fmore-randomness-or-less\u002F",[53],[57,3658,3659],{},"More Randomness or Less"," . June 2012.",[39,3662,3663,3666,3668,3669,3676],{},[42,3664],{"id":3665},"AA.Bibliography-Warren02",[46,3667],{},"\n[Warren 2002] Warren, Henry S. ",[42,3670,3673],{"href":3671,"rel":3672},"http:\u002F\u002Fwww.hackersdelight.org\u002F",[53],[57,3674,3675],{},"Hacker's Delight"," . Boston: Addison Wesley, 2002 (ISBN 0201914654).",[39,3678,3679,3682,3684,3685,3690],{},[42,3680],{"id":3681},"AA.Bibliography-WG14\u002FN1396",[46,3683],{},"\n[WG14\u002FN1396] Thomas, J. & Tydeman, F. \" ",[42,3686,3689],{"href":3687,"rel":3688},"http:\u002F\u002Fwww.open-std.org\u002Fjtc1\u002Fsc22\u002Fwg14\u002Fwww\u002Fdocs\u002Fn1396.htm",[53],"Wide function return values"," .\" September 2009.",[39,3692,3693,136,3696,3699,3701,3702,1797],{},[42,3694],{"id":3695},"AA.Bibliography-Wheeler03",[42,3697],{"id":3698},"AA.Bibliography-WG14-N1396",[46,3700],{},"\n[Wheeler 2003] Wheeler, David. ",[42,3703,3706],{"href":3704,"rel":3705},"http:\u002F\u002Fwww.dwheeler.com\u002Fsecure-programs\u002FSecure-Programs-HOWTO\u002F",[53],"Secure Programming for Linux and Unix HOWTO, v3.010",[39,3708,3709,3712,3714,3715,3722],{},[42,3710],{"id":3711},"AA.Bibliography-Wheeler04",[46,3713],{},"\n[Wheeler 2004] Wheeler, David. ",[42,3716,3719],{"href":3717,"rel":3718},"http:\u002F\u002Fwww-128.ibm.com\u002Fdeveloperworks\u002Flinux\u002Flibrary\u002Fl-calls.html",[53],[57,3720,3721],{},"Secure Programmer: Call Components Safely"," . December 2004.",[39,3724,3725,3728,3730,3731,3736],{},[42,3726],{"id":3727},"AA.Bibliography-Wojtczuk08",[46,3729],{},"\n[Wojtczuk 2008] Wojtczuk, Rafal. \" ",[42,3732,3735],{"href":3733,"rel":3734},"http:\u002F\u002Fwww.avertlabs.com\u002Fresearch\u002Fblog\u002Findex.php\u002F2008\u002F02\u002F13\u002Fanalyzing-the-linux-kernel-vmsplice-exploit\u002F",[53],"Analyzing the Linux Kernel vmsplice Exploit"," .\" McAfee Avert Labs Blog, February 13, 2008.",[39,3738,3739,3742,3744,3745,3750],{},[42,3740],{"id":3741},"AA.Bibliography-xorl2009",[46,3743],{},"\n[xorl 2009] xorl. ",[42,3746,3749],{"href":3747,"rel":3748},"http:\u002F\u002Fxorl.wordpress.com\u002F",[53],"xorl %eax, %eax"," . 2009.",[39,3752,3753,3756,3758,3759,3764],{},[42,3754],{"id":3755},"AA.Bibliography-Yergeau98",[46,3757],{},"\n[Yergeau 1998] Yergeau, F. ",[42,3760,3763],{"href":3761,"rel":3762},"http:\u002F\u002Fwww.faqs.org\u002Frfcs\u002Frfc2279.html",[53],"RFC 2279 - UTF-8, a transformation format of ISO 10646."," January 1998.",[39,3766,3767,3770,3772,3773,55,3778,3783],{},[42,3768],{"id":3769},"AA.Bibliography-Zadegan2009",[46,3771],{},"\n[Zadegan 2009] Zadegan, B. \" ",[42,3774,3777],{"href":3775,"rel":3776},"http:\u002F\u002Fwinjade.net\u002F2009\u002F01\u002Flesson-on-infinite-loops\u002F",[53],"A Lesson on Infinite Loops",[42,3779,3782],{"href":3780,"rel":3781},"http:\u002F\u002Fwinjade.net\u002F",[53],"WinJade"," (formerly AeroXperience), January 2009.",[39,3785,3786,3789,3791,3792,3799],{},[42,3787],{"id":3788},"AA.Bibliography-Zalewski01",[46,3790],{},"\n[Zalewski 2001] Zalewski, Michal. ",[42,3793,3796],{"href":3794,"rel":3795},"http:\u002F\u002Flcamtuf.coredump.cx\u002Fsignals.txt",[53],[57,3797,3798],{},"Delivering Signals for Fun and Profit: Understanding, Exploiting and Preventing Signal-Handling Related Vulnerabilities"," . Bindview Corporation, May 2001.",[3801,3802],"hr",{},[39,3804,3805,136,3812,136,3818],{},[42,3806,3808],{"href":3807},"https:\u002F\u002Fwww.securecoding.cert.org\u002Fconfluence\u002Fdisplay\u002Fseccode\u002FWIN30-C.+Properly+pair+allocation+and+deallocation+functions?showChildren=false&showComments=false",[3809,3810],"img",{"src":3811},"\u002Fattachments\u002F87152044\u002F88034188.png",[42,3813,3815],{"href":3814},"https:\u002F\u002Fwww.securecoding.cert.org\u002Fconfluence\u002Fdisplay\u002Fseccode\u002FCERT+C+Coding+Standard",[3809,3816],{"src":3817},"\u002Fattachments\u002F87152044\u002F88034190.png",[42,3819,3821],{"href":3820},"https:\u002F\u002Fwww.securecoding.cert.org\u002Fconfluence\u002Fdisplay\u002Fseccode\u002FBB.+Definitions?showChildren=false&showComments=false",[3809,3822],{"src":3823},"\u002Fattachments\u002F87152044\u002F88034189.png",{"title":3825,"searchDepth":3826,"depth":3826,"links":3827},"",2,[],"\n[Acton 2006] Acton, Mike. \" Understanding Strict Aliasing .\" CellPerformance , June 1, 2006.","md",{"tags":3831},[3832,3833],"bm","section","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Faa-bibliography",{"title":30,"description":3828},"4.sei-cert-c-coding-standard\u002F04.back-matter\u002F2.aa-bibliography","2AGAsy50GMELD78JxDte9R7n_QM5JsbCtRAMXm1rPnM",[3839,3843],{"title":3840,"path":3841,"stem":3842,"children":-1},"Back Matter","\u002Fsei-cert-c-coding-standard\u002Fback-matter","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F1.index",{"title":3844,"path":3845,"stem":3846,"children":-1},"BB. Definitions","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fbb-definitions","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F3.bb-definitions",[3848],{"title":3849,"path":3850,"stem":3851,"children":3852},"SEI CERT C Coding Standard","\u002Fsei-cert-c-coding-standard","4.sei-cert-c-coding-standard\u002F01.index",[3853,3854,3926,4516,4804,4818,4822,4826,4830,5645],{"title":3849,"path":3850,"stem":3851},{"title":3855,"path":3856,"stem":3857,"children":3858},"Front Matter","\u002Fsei-cert-c-coding-standard\u002Ffront-matter","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F1.index",[3859,3860],{"title":3855,"path":3856,"stem":3857},{"title":3861,"path":3862,"stem":3863,"children":3864},"Introduction","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.index",[3865,3866,3870,3874,3878,3882,3886,3890,3894,3898,3902,3906,3910,3914,3918,3922],{"title":3861,"path":3862,"stem":3863},{"title":3867,"path":3868,"stem":3869},"Scope","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F01.scope",{"title":3871,"path":3872,"stem":3873},"Audience","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Faudience","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F02.audience",{"title":3875,"path":3876,"stem":3877},"How this Coding Standard is Organized","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fhow-this-coding-standard-is-organized","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F03.how-this-coding-standard-is-organized",{"title":3879,"path":3880,"stem":3881},"History","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fhistory","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F04.history",{"title":3883,"path":3884,"stem":3885},"ISO\u002FIEC TS 17961 C Secure Coding Rules","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fisoiec-ts-17961-c-secure-coding-rules","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F05.isoiec-ts-17961-c-secure-coding-rules",{"title":3887,"path":3888,"stem":3889},"Tool Selection and Validation","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Ftool-selection-and-validation","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F06.tool-selection-and-validation",{"title":3891,"path":3892,"stem":3893},"Taint Analysis","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Ftaint-analysis","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F07.taint-analysis",{"title":3895,"path":3896,"stem":3897},"Rules versus Recommendations","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Frules-versus-recommendations","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F08.rules-versus-recommendations",{"title":3899,"path":3900,"stem":3901},"Conformance Testing","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fconformance-testing","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F09.conformance-testing",{"title":3903,"path":3904,"stem":3905},"Development Process","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fdevelopment-process","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F10.development-process",{"title":3907,"path":3908,"stem":3909},"Usage","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F11.usage",{"title":3911,"path":3912,"stem":3913},"System Qualities","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fsystem-qualities","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F12.system-qualities",{"title":3915,"path":3916,"stem":3917},"Automatically Generated Code","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fautomatically-generated-code","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F13.automatically-generated-code",{"title":3919,"path":3920,"stem":3921},"Government Regulations","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fgovernment-regulations","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F14.government-regulations",{"title":3923,"path":3924,"stem":3925},"Acknowledgments","\u002Fsei-cert-c-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgments","4.sei-cert-c-coding-standard\u002F02.front-matter\u002F2.introduction\u002F15.acknowledgments",{"title":3927,"path":3928,"stem":3929,"children":3930},"Rules","\u002Fsei-cert-c-coding-standard\u002Frules","4.sei-cert-c-coding-standard\u002F03.rules\u002F01.index",[3931,3932,3936,3966,3996,4058,4096,4122,4144,4210,4236,4294,4328,4358,4368,4406,4476,4494],{"title":3927,"path":3928,"stem":3929},{"title":3933,"path":3934,"stem":3935},"Application Programming Interfaces (API)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fapplication-programming-interfaces-api","4.sei-cert-c-coding-standard\u002F03.rules\u002F02.application-programming-interfaces-api",{"title":3937,"path":3938,"stem":3939,"children":3940},"Arrays (ARR)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F1.index",[3941,3942,3946,3950,3954,3958,3962],{"title":3937,"path":3938,"stem":3939},{"title":3943,"path":3944,"stem":3945},"ARR30-C. Do not form or use out-of-bounds pointers or array subscripts","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F2.arr30-c",{"title":3947,"path":3948,"stem":3949},"ARR32-C. Ensure size arguments for variable length arrays are in a valid range","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F3.arr32-c",{"title":3951,"path":3952,"stem":3953},"ARR36-C. Do not subtract or compare two pointers that do not refer to the same array","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F4.arr36-c",{"title":3955,"path":3956,"stem":3957},"ARR37-C. Do not add or subtract an integer to a pointer to a non-array object","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F5.arr37-c",{"title":3959,"path":3960,"stem":3961},"ARR38-C. Guarantee that library functions do not form invalid pointers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F6.arr38-c",{"title":3963,"path":3964,"stem":3965},"ARR39-C. Do not add or subtract a scaled integer to a pointer","\u002Fsei-cert-c-coding-standard\u002Frules\u002Farrays-arr\u002Farr39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F03.arrays-arr\u002F7.arr39-c",{"title":3967,"path":3968,"stem":3969,"children":3970},"Characters and Strings (STR)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F1.index",[3971,3972,3976,3980,3984,3988,3992],{"title":3967,"path":3968,"stem":3969},{"title":3973,"path":3974,"stem":3975},"STR30-C. Do not attempt to modify string literals","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F2.str30-c",{"title":3977,"path":3978,"stem":3979},"STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F3.str31-c",{"title":3981,"path":3982,"stem":3983},"STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F4.str32-c",{"title":3985,"path":3986,"stem":3987},"STR34-C. Cast characters to unsigned char before converting to larger integer sizes","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F5.str34-c",{"title":3989,"path":3990,"stem":3991},"STR37-C. Arguments to character-handling functions must be representable as an unsigned char","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F6.str37-c",{"title":3993,"path":3994,"stem":3995},"STR38-C. Do not confuse narrow and wide character strings and functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F04.characters-and-strings-str\u002F7.str38-c",{"title":3997,"path":3998,"stem":3999,"children":4000},"Concurrency (CON)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F01.index",[4001,4002,4006,4010,4014,4018,4022,4026,4030,4034,4038,4042,4046,4050,4054],{"title":3997,"path":3998,"stem":3999},{"title":4003,"path":4004,"stem":4005},"CON30-C. Clean up thread-specific storage","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F02.con30-c",{"title":4007,"path":4008,"stem":4009},"CON31-C. Do not destroy a mutex while it is locked","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F03.con31-c",{"title":4011,"path":4012,"stem":4013},"CON32-C. Prevent data races when accessing bit-fields from multiple threads","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F04.con32-c",{"title":4015,"path":4016,"stem":4017},"CON33-C. Avoid race conditions when using library functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F05.con33-c",{"title":4019,"path":4020,"stem":4021},"CON34-C. Declare objects shared between threads with appropriate storage durations","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F06.con34-c",{"title":4023,"path":4024,"stem":4025},"CON35-C. Avoid deadlock by locking in a predefined order","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F07.con35-c",{"title":4027,"path":4028,"stem":4029},"CON36-C. Wrap functions that can spuriously wake up in a loop","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F08.con36-c",{"title":4031,"path":4032,"stem":4033},"CON37-C. Do not call signal() in a multithreaded program","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F09.con37-c",{"title":4035,"path":4036,"stem":4037},"CON38-C. Preserve thread safety and liveness when using condition variables","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F10.con38-c",{"title":4039,"path":4040,"stem":4041},"CON39-C. Do not join or detach a thread that was previously joined or detached","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F11.con39-c",{"title":4043,"path":4044,"stem":4045},"CON40-C. Do not refer to an atomic variable twice in an expression","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon40-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F12.con40-c",{"title":4047,"path":4048,"stem":4049},"CON41-C. Wrap functions that can fail spuriously in a loop","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon41-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F13.con41-c",{"title":4051,"path":4052,"stem":4053},"CON42-C. Don't allow attackers to influence environment variables that control concurrency parameters","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon42-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F14.con42-c",{"title":4055,"path":4056,"stem":4057},"CON43-C. Do not allow data races in multithreaded code","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon43-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F05.concurrency-con\u002F15.con43-c",{"title":4059,"path":4060,"stem":4061,"children":4062},"Declarations and Initialization (DCL)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F1.index",[4063,4064,4068,4072,4076,4080,4084,4088,4092],{"title":4059,"path":4060,"stem":4061},{"title":4065,"path":4066,"stem":4067},"DCL30-C. Declare objects with appropriate storage durations","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F2.dcl30-c",{"title":4069,"path":4070,"stem":4071},"DCL31-C. Declare identifiers before using them","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F3.dcl31-c",{"title":4073,"path":4074,"stem":4075},"DCL36-C. Do not declare an identifier with conflicting linkage classifications","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F4.dcl36-c",{"title":4077,"path":4078,"stem":4079},"DCL37-C. Do not declare or define a reserved identifier","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F5.dcl37-c",{"title":4081,"path":4082,"stem":4083},"DCL38-C. Use the correct syntax when declaring a flexible array member","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F6.dcl38-c",{"title":4085,"path":4086,"stem":4087},"DCL39-C. Avoid information leakage when passing a structure across a trust boundary","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F7.dcl39-c",{"title":4089,"path":4090,"stem":4091},"DCL40-C. Do not create incompatible declarations of the same function or object","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl40-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F8.dcl40-c",{"title":4093,"path":4094,"stem":4095},"DCL41-C. Do not declare variables inside a switch statement before the first case label","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl41-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F06.declarations-and-initialization-dcl\u002F9.dcl41-c",{"title":4097,"path":4098,"stem":4099,"children":4100},"Environment (ENV)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F1.index",[4101,4102,4106,4110,4114,4118],{"title":4097,"path":4098,"stem":4099},{"title":4103,"path":4104,"stem":4105},"ENV30-C. Do not modify the object referenced by the return value of certain functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env\u002Fenv30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F2.env30-c",{"title":4107,"path":4108,"stem":4109},"ENV31-C. Do not rely on an environment pointer following an operation that may invalidate it","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env\u002Fenv31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F3.env31-c",{"title":4111,"path":4112,"stem":4113},"ENV32-C. All exit handlers must return normally","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env\u002Fenv32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F4.env32-c",{"title":4115,"path":4116,"stem":4117},"ENV33-C. Do not call system()","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env\u002Fenv33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F5.env33-c",{"title":4119,"path":4120,"stem":4121},"ENV34-C. Do not store pointers returned by certain functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fenvironment-env\u002Fenv34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F07.environment-env\u002F6.env34-c",{"title":4123,"path":4124,"stem":4125,"children":4126},"Error Handling (ERR)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ferror-handling-err","4.sei-cert-c-coding-standard\u002F03.rules\u002F08.error-handling-err\u002F1.index",[4127,4128,4132,4136,4140],{"title":4123,"path":4124,"stem":4125},{"title":4129,"path":4130,"stem":4131},"ERR30-C. Take care when reading errno","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ferror-handling-err\u002Ferr30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F08.error-handling-err\u002F2.err30-c",{"title":4133,"path":4134,"stem":4135},"ERR32-C. Do not rely on indeterminate values of errno","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ferror-handling-err\u002Ferr32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F08.error-handling-err\u002F3.err32-c",{"title":4137,"path":4138,"stem":4139},"ERR33-C. Detect and handle standard library errors","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ferror-handling-err\u002Ferr33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F08.error-handling-err\u002F4.err33-c",{"title":4141,"path":4142,"stem":4143},"ERR34-C. Detect errors when converting a string to a number","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ferror-handling-err\u002Ferr34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F08.error-handling-err\u002F5.err34-c",{"title":4145,"path":4146,"stem":4147,"children":4148},"Expressions (EXP)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F01.index",[4149,4150,4154,4158,4162,4166,4170,4174,4178,4182,4186,4190,4194,4198,4202,4206],{"title":4145,"path":4146,"stem":4147},{"title":4151,"path":4152,"stem":4153},"EXP30-C. Do not depend on the order of evaluation for side effects","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F02.exp30-c",{"title":4155,"path":4156,"stem":4157},"EXP32-C. Do not access a volatile object through a nonvolatile reference","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F03.exp32-c",{"title":4159,"path":4160,"stem":4161},"EXP33-C. Do not read uninitialized memory","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F04.exp33-c",{"title":4163,"path":4164,"stem":4165},"EXP34-C. Do not dereference null pointers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F05.exp34-c",{"title":4167,"path":4168,"stem":4169},"EXP35-C. Do not modify objects with temporary lifetime","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F06.exp35-c",{"title":4171,"path":4172,"stem":4173},"EXP36-C. Do not cast pointers into more strictly aligned pointer types","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F07.exp36-c",{"title":4175,"path":4176,"stem":4177},"EXP37-C. Call functions with the correct number and type of arguments","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F08.exp37-c",{"title":4179,"path":4180,"stem":4181},"EXP39-C. Do not access a variable through a pointer of an incompatible type","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F09.exp39-c",{"title":4183,"path":4184,"stem":4185},"EXP40-C. Do not modify constant objects","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp40-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F10.exp40-c",{"title":4187,"path":4188,"stem":4189},"EXP42-C. Do not compare padding data","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp42-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F11.exp42-c",{"title":4191,"path":4192,"stem":4193},"EXP43-C. Avoid undefined behavior when using restrict-qualified pointers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp43-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F12.exp43-c",{"title":4195,"path":4196,"stem":4197},"EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp44-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F13.exp44-c",{"title":4199,"path":4200,"stem":4201},"EXP45-C. Do not perform assignments in selection statements","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp45-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F14.exp45-c",{"title":4203,"path":4204,"stem":4205},"EXP46-C. Do not use a bitwise operator with a Boolean-like operand","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp46-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F15.exp46-c",{"title":4207,"path":4208,"stem":4209},"EXP47-C. Do not call va_arg with an argument of the incorrect type","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp47-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F09.expressions-exp\u002F16.exp47-c",{"title":4211,"path":4212,"stem":4213,"children":4214},"Floating Point (FLP)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F1.index",[4215,4216,4220,4224,4228,4232],{"title":4211,"path":4212,"stem":4213},{"title":4217,"path":4218,"stem":4219},"FLP30-C. Do not use floating-point variables as loop counters","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp\u002Fflp30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F2.flp30-c",{"title":4221,"path":4222,"stem":4223},"FLP32-C. Prevent or detect domain and range errors in math functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp\u002Fflp32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F3.flp32-c",{"title":4225,"path":4226,"stem":4227},"FLP34-C. Ensure that floating-point conversions are within range of the new type","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp\u002Fflp34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F4.flp34-c",{"title":4229,"path":4230,"stem":4231},"FLP36-C. Preserve precision when converting integral values to floating-point type","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp\u002Fflp36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F5.flp36-c",{"title":4233,"path":4234,"stem":4235},"FLP37-C. Do not use object representations to compare floating-point values","\u002Fsei-cert-c-coding-standard\u002Frules\u002Ffloating-point-flp\u002Fflp37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F10.floating-point-flp\u002F6.flp37-c",{"title":4237,"path":4238,"stem":4239,"children":4240},"Input Output (FIO)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F01.index",[4241,4242,4246,4250,4254,4258,4262,4266,4270,4274,4278,4282,4286,4290],{"title":4237,"path":4238,"stem":4239},{"title":4243,"path":4244,"stem":4245},"FIO30-C. Exclude user input from format strings","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F02.fio30-c",{"title":4247,"path":4248,"stem":4249},"FIO32-C. Do not perform operations on devices that are only appropriate for files","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F03.fio32-c",{"title":4251,"path":4252,"stem":4253},"FIO34-C. Distinguish between characters read from a file and EOF or WEOF","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F04.fio34-c",{"title":4255,"path":4256,"stem":4257},"FIO37-C. Do not assume that fgets() or fgetws() returns a nonempty string when successful","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F05.fio37-c",{"title":4259,"path":4260,"stem":4261},"FIO38-C. Do not copy a FILE object","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F06.fio38-c",{"title":4263,"path":4264,"stem":4265},"FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F07.fio39-c",{"title":4267,"path":4268,"stem":4269},"FIO40-C. Reset strings on fgets() or fgetws() failure","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio40-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F08.fio40-c",{"title":4271,"path":4272,"stem":4273},"FIO41-C. Do not call getc(), putc(), getwc(), or putwc() with a stream argument that has side effects","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio41-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F09.fio41-c",{"title":4275,"path":4276,"stem":4277},"FIO42-C. Close files when they are no longer needed","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio42-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F10.fio42-c",{"title":4279,"path":4280,"stem":4281},"FIO44-C. Only use values for fsetpos() that are returned from fgetpos()","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio44-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F11.fio44-c",{"title":4283,"path":4284,"stem":4285},"FIO45-C. Avoid TOCTOU race conditions while accessing files","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio45-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F12.fio45-c",{"title":4287,"path":4288,"stem":4289},"FIO46-C. Do not access a closed file","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio46-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F13.fio46-c",{"title":4291,"path":4292,"stem":4293},"FIO47-C. Use valid format strings","\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio47-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F11.input-output-fio\u002F14.fio47-c",{"title":4295,"path":4296,"stem":4297,"children":4298},"Integers (INT)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F1.index",[4299,4300,4304,4308,4312,4316,4320,4324],{"title":4295,"path":4296,"stem":4297},{"title":4301,"path":4302,"stem":4303},"INT30-C. Ensure that unsigned integer operations do not wrap","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F2.int30-c",{"title":4305,"path":4306,"stem":4307},"INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F3.int31-c",{"title":4309,"path":4310,"stem":4311},"INT32-C. Ensure that operations on signed integers do not result in overflow","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F4.int32-c",{"title":4313,"path":4314,"stem":4315},"INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F5.int33-c",{"title":4317,"path":4318,"stem":4319},"INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F6.int34-c",{"title":4321,"path":4322,"stem":4323},"INT35-C. Use correct integer precisions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F7.int35-c",{"title":4325,"path":4326,"stem":4327},"INT36-C. Converting a pointer to integer or integer to pointer","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fintegers-int\u002Fint36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F12.integers-int\u002F8.int36-c",{"title":4329,"path":4330,"stem":4331,"children":4332},"Memory Management (MEM)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F1.index",[4333,4334,4338,4342,4346,4350,4354],{"title":4329,"path":4330,"stem":4331},{"title":4335,"path":4336,"stem":4337},"MEM30-C. Do not access freed memory","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F2.mem30-c",{"title":4339,"path":4340,"stem":4341},"MEM31-C. Free dynamically allocated memory when no longer needed","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F3.mem31-c",{"title":4343,"path":4344,"stem":4345},"MEM33-C. Allocate and copy structures containing a flexible array member dynamically","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F4.mem33-c",{"title":4347,"path":4348,"stem":4349},"MEM34-C. Only free memory allocated dynamically","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F5.mem34-c",{"title":4351,"path":4352,"stem":4353},"MEM35-C. Allocate sufficient memory for an object","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F6.mem35-c",{"title":4355,"path":4356,"stem":4357},"MEM36-C. Do not modify the alignment of objects by calling realloc()","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F13.memory-management-mem\u002F7.mem36-c",{"title":4359,"path":4360,"stem":4361,"children":4362},"Microsoft Windows (WIN)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmicrosoft-windows-win","4.sei-cert-c-coding-standard\u002F03.rules\u002F14.microsoft-windows-win\u002F1.index",[4363,4364],{"title":4359,"path":4360,"stem":4361},{"title":4365,"path":4366,"stem":4367},"WIN30-C. Properly pair allocation and deallocation functions","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmicrosoft-windows-win\u002Fwin30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F14.microsoft-windows-win\u002F2.win30-c",{"title":4369,"path":4370,"stem":4371,"children":4372},"Miscellaneous (MSC)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F1.index",[4373,4374,4378,4382,4386,4390,4394,4398,4402],{"title":4369,"path":4370,"stem":4371},{"title":4375,"path":4376,"stem":4377},"MSC30-C. Do not use the rand() function for generating pseudorandom numbers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F2.msc30-c",{"title":4379,"path":4380,"stem":4381},"MSC32-C. Properly seed pseudorandom number generators","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F3.msc32-c",{"title":4383,"path":4384,"stem":4385},"MSC33-C. Do not pass invalid data to the asctime() function","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc33-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F4.msc33-c",{"title":4387,"path":4388,"stem":4389},"MSC37-C. Ensure that control never reaches the end of a non-void function","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F5.msc37-c",{"title":4391,"path":4392,"stem":4393},"MSC38-C. Do not treat a predefined identifier as an object if it might only be implemented as a macro","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F6.msc38-c",{"title":4395,"path":4396,"stem":4397},"MSC39-C. Do not call va_arg() on a va_list that has an indeterminate value","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F7.msc39-c",{"title":4399,"path":4400,"stem":4401},"MSC40-C. Do not violate constraints","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc40-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F8.msc40-c",{"title":4403,"path":4404,"stem":4405},"MSC41-C. Never hard code sensitive information","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc41-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F15.miscellaneous-msc\u002F9.msc41-c",{"title":4407,"path":4408,"stem":4409,"children":4410},"POSIX (POS)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F01.index",[4411,4412,4416,4420,4424,4428,4432,4436,4440,4444,4448,4452,4456,4460,4464,4468,4472],{"title":4407,"path":4408,"stem":4409},{"title":4413,"path":4414,"stem":4415},"POS30-C. Use the readlink() function properly","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F02.pos30-c",{"title":4417,"path":4418,"stem":4419},"POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F03.pos34-c",{"title":4421,"path":4422,"stem":4423},"POS35-C. Avoid race conditions while checking for the existence of a symbolic link","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F04.pos35-c",{"title":4425,"path":4426,"stem":4427},"POS36-C. Observe correct revocation order while relinquishing privileges","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos36-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F05.pos36-c",{"title":4429,"path":4430,"stem":4431},"POS37-C. Ensure that privilege relinquishment is successful","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos37-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F06.pos37-c",{"title":4433,"path":4434,"stem":4435},"POS38-C. Beware of race conditions when using fork and file descriptors","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos38-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F07.pos38-c",{"title":4437,"path":4438,"stem":4439},"POS39-C. Use the correct byte ordering when transferring data between systems","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos39-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F08.pos39-c",{"title":4441,"path":4442,"stem":4443},"POS44-C. Do not use signals to terminate threads","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos44-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F09.pos44-c",{"title":4445,"path":4446,"stem":4447},"POS47-C. Do not use threads that can be canceled asynchronously","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos47-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F10.pos47-c",{"title":4449,"path":4450,"stem":4451},"POS48-C. Do not unlock or destroy another POSIX thread's mutex","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos48-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F11.pos48-c",{"title":4453,"path":4454,"stem":4455},"POS49-C. When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos49-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F12.pos49-c",{"title":4457,"path":4458,"stem":4459},"POS50-C. Declare objects shared between POSIX threads with appropriate storage durations","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos50-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F13.pos50-c",{"title":4461,"path":4462,"stem":4463},"POS51-C. Avoid deadlock with POSIX threads by locking in predefined order","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos51-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F14.pos51-c",{"title":4465,"path":4466,"stem":4467},"POS52-C. Do not perform operations that can block while holding a POSIX lock","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos52-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F15.pos52-c",{"title":4469,"path":4470,"stem":4471},"POS53-C. Do not use more than one mutex for concurrent waiting operations on a condition variable","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos53-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F16.pos53-c",{"title":4473,"path":4474,"stem":4475},"POS54-C. Detect and handle POSIX library errors","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fposix-pos\u002Fpos54-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F16.posix-pos\u002F17.pos54-c",{"title":4477,"path":4478,"stem":4479,"children":4480},"Preprocessor (PRE)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre","4.sei-cert-c-coding-standard\u002F03.rules\u002F17.preprocessor-pre\u002F1.index",[4481,4482,4486,4490],{"title":4477,"path":4478,"stem":4479},{"title":4483,"path":4484,"stem":4485},"PRE30-C. Do not create a universal character name through concatenation","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F17.preprocessor-pre\u002F2.pre30-c",{"title":4487,"path":4488,"stem":4489},"PRE31-C. Avoid side effects in arguments to unsafe macros","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F17.preprocessor-pre\u002F3.pre31-c",{"title":4491,"path":4492,"stem":4493},"PRE32-C. Do not use preprocessor directives in invocations of function-like macros","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fpreprocessor-pre\u002Fpre32-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F17.preprocessor-pre\u002F4.pre32-c",{"title":4495,"path":4496,"stem":4497,"children":4498},"Signals (SIG)","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fsignals-sig","4.sei-cert-c-coding-standard\u002F03.rules\u002F18.signals-sig\u002F1.index",[4499,4500,4504,4508,4512],{"title":4495,"path":4496,"stem":4497},{"title":4501,"path":4502,"stem":4503},"SIG30-C. Call only asynchronous-safe functions within signal handlers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fsignals-sig\u002Fsig30-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F18.signals-sig\u002F2.sig30-c",{"title":4505,"path":4506,"stem":4507},"SIG31-C. Do not access shared objects in signal handlers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fsignals-sig\u002Fsig31-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F18.signals-sig\u002F3.sig31-c",{"title":4509,"path":4510,"stem":4511},"SIG34-C. Do not call signal() from within interruptible signal handlers","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fsignals-sig\u002Fsig34-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F18.signals-sig\u002F4.sig34-c",{"title":4513,"path":4514,"stem":4515},"SIG35-C. Do not return from a computational exception signal handler","\u002Fsei-cert-c-coding-standard\u002Frules\u002Fsignals-sig\u002Fsig35-c","4.sei-cert-c-coding-standard\u002F03.rules\u002F18.signals-sig\u002F5.sig35-c",{"title":3840,"path":3841,"stem":3842,"children":4517},[4518,4519,4520,4521,4525,4529,4743,4800],{"title":3840,"path":3841,"stem":3842},{"title":30,"path":3834,"stem":3836},{"title":3844,"path":3845,"stem":3846},{"title":4522,"path":4523,"stem":4524},"CC. Undefined Behavior","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fcc-undefined-behavior","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F4.cc-undefined-behavior",{"title":4526,"path":4527,"stem":4528},"DD. Unspecified Behavior","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fdd-unspecified-behavior","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F5.dd-unspecified-behavior",{"title":4530,"path":4531,"stem":4532,"children":4533},"EE. Analyzers","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F01.index",[4534,4535,4539,4543,4547,4551,4555,4559,4563,4567,4571,4575,4579,4583,4587,4591,4595,4599,4603,4607,4611,4615,4619,4623,4627,4631,4635,4639,4643,4647,4651,4655,4659,4663,4667,4671,4675,4679,4683,4687,4691,4695,4699,4703,4707,4711,4715,4719,4723,4727,4731,4735,4739],{"title":4530,"path":4531,"stem":4532},{"title":4536,"path":4537,"stem":4538},"Astrée","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fastree","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F02.astree",{"title":4540,"path":4541,"stem":4542},"Astrée_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fastree_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F03.astree_v",{"title":4544,"path":4545,"stem":4546},"Axivion Bauhaus Suite","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Faxivion-bauhaus-suite","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F04.axivion-bauhaus-suite",{"title":4548,"path":4549,"stem":4550},"Axivion Bauhaus Suite_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Faxivion-bauhaus-suite_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F05.axivion-bauhaus-suite_v",{"title":4552,"path":4553,"stem":4554},"Clang","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fclang","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F06.clang",{"title":4556,"path":4557,"stem":4558},"Clang_38_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fclang_38_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F07.clang_38_v",{"title":4560,"path":4561,"stem":4562},"Clang_39_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fclang_39_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F08.clang_39_v",{"title":4564,"path":4565,"stem":4566},"Clang_40_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fclang_40_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F09.clang_40_v",{"title":4568,"path":4569,"stem":4570},"Clang_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fclang_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F10.clang_v",{"title":4572,"path":4573,"stem":4574},"Codee","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcodee","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F11.codee",{"title":4576,"path":4577,"stem":4578},"Codee_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcodee_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F12.codee_v",{"title":4580,"path":4581,"stem":4582},"CodeSonar","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcodesonar","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F13.codesonar",{"title":4584,"path":4585,"stem":4586},"CodeSonar_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcodesonar_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F14.codesonar_v",{"title":4588,"path":4589,"stem":4590},"Coverity","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcoverity","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F15.coverity",{"title":4592,"path":4593,"stem":4594},"Coverity_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcoverity_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F16.coverity_v",{"title":4596,"path":4597,"stem":4598},"Cppcheck","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcppcheck","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F17.cppcheck",{"title":4600,"path":4601,"stem":4602},"Cppcheck Premium","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcppcheck-premium","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F18.cppcheck-premium",{"title":4604,"path":4605,"stem":4606},"Cppcheck Premium_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcppcheck-premium_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F19.cppcheck-premium_v",{"title":4608,"path":4609,"stem":4610},"Cppcheck_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcppcheck_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F20.cppcheck_v",{"title":4612,"path":4613,"stem":4614},"ECLAIR","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Feclair","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F21.eclair",{"title":4616,"path":4617,"stem":4618},"ECLAIR_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Feclair_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F22.eclair_v",{"title":4620,"path":4621,"stem":4622},"EDG","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fedg","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F23.edg",{"title":4624,"path":4625,"stem":4626},"EDG_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fedg_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F24.edg_v",{"title":4628,"path":4629,"stem":4630},"GCC","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fgcc","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F25.gcc",{"title":4632,"path":4633,"stem":4634},"GCC_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fgcc_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F26.gcc_v",{"title":4636,"path":4637,"stem":4638},"Helix QAC","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fhelix-qac","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F27.helix-qac",{"title":4640,"path":4641,"stem":4642},"Helix QAC_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fhelix-qac_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F28.helix-qac_v",{"title":4644,"path":4645,"stem":4646},"Klocwork","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fklocwork","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F29.klocwork",{"title":4648,"path":4649,"stem":4650},"Klocwork_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fklocwork_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F30.klocwork_v",{"title":4652,"path":4653,"stem":4654},"LDRA","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fldra","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F31.ldra",{"title":4656,"path":4657,"stem":4658},"LDRA_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fldra_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F32.ldra_v",{"title":4660,"path":4661,"stem":4662},"Parasoft","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fparasoft","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F33.parasoft",{"title":4664,"path":4665,"stem":4666},"Parasoft_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fparasoft_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F34.parasoft_v",{"title":4668,"path":4669,"stem":4670},"PC-lint Plus","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpc-lint-plus","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F35.pc-lint-plus",{"title":4672,"path":4673,"stem":4674},"PC-lint Plus_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpc-lint-plus_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F36.pc-lint-plus_v",{"title":4676,"path":4677,"stem":4678},"Polyspace Bug Finder","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpolyspace-bug-finder","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F37.polyspace-bug-finder",{"title":4680,"path":4681,"stem":4682},"Polyspace Bug Finder_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpolyspace-bug-finder_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F38.polyspace-bug-finder_v",{"title":4684,"path":4685,"stem":4686},"PVS-Studio","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpvs-studio","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F39.pvs-studio",{"title":4688,"path":4689,"stem":4690},"PVS-Studio_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fpvs-studio_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F40.pvs-studio_v",{"title":4692,"path":4693,"stem":4694},"Rose","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Frose","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F41.rose",{"title":4696,"path":4697,"stem":4698},"Rose_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Frose_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F42.rose_v",{"title":4700,"path":4701,"stem":4702},"Rosecheckers Code","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Frosecheckers-code","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F43.rosecheckers-code",{"title":4704,"path":4705,"stem":4706},"RuleChecker","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Frulechecker","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F44.rulechecker",{"title":4708,"path":4709,"stem":4710},"RuleChecker_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Frulechecker_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F45.rulechecker_v",{"title":4712,"path":4713,"stem":4714},"Security Reviewer - Static Reviewer","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsecurity-reviewer-static-reviewer","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F46.security-reviewer-static-reviewer",{"title":4716,"path":4717,"stem":4718},"Security Reviewer - Static Reviewer_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsecurity-reviewer-static-reviewer_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F47.security-reviewer-static-reviewer_v",{"title":4720,"path":4721,"stem":4722},"SonarQube C\u002FC++ Plugin","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsonarqube-ccpp-plugin","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F48.sonarqube-ccpp-plugin",{"title":4724,"path":4725,"stem":4726},"SonarQube C\u002FC++ Plugin_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsonarqube-ccpp-plugin_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F49.sonarqube-ccpp-plugin_v",{"title":4728,"path":4729,"stem":4730},"Splint","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsplint","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F50.splint",{"title":4732,"path":4733,"stem":4734},"Splint_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fsplint_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F51.splint_v",{"title":4736,"path":4737,"stem":4738},"TrustInSoft Analyzer","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Ftrustinsoft-analyzer","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F52.trustinsoft-analyzer",{"title":4740,"path":4741,"stem":4742},"TrustInSoft Analyzer_V","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Ftrustinsoft-analyzer_v","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F6.ee-analyzers\u002F53.trustinsoft-analyzer_v",{"title":4744,"path":4745,"stem":4746,"children":4747},"FF. Related Guidelines","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F01.index",[4748,4749,4753,4757,4761,4765,4769,4773,4777,4781,4784,4788,4792,4796],{"title":4744,"path":4745,"stem":4746},{"title":4750,"path":4751,"stem":4752},"2003","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F02.2003","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F02.2003",{"title":4754,"path":4755,"stem":4756},"2006","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F03.2006","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F03.2006",{"title":4758,"path":4759,"stem":4760},"2007","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F04.2007","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F04.2007",{"title":4762,"path":4763,"stem":4764},"2008","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F05.2008","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F05.2008",{"title":4766,"path":4767,"stem":4768},"2010","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F06.2010","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F06.2010",{"title":4770,"path":4771,"stem":4772},"2011","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F07.2011","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F07.2011",{"title":4774,"path":4775,"stem":4776},"2012","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F08.2012","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F08.2012",{"title":4778,"path":4779,"stem":4780},"2013","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F09.2013","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F09.2013",{"title":4778,"path":4782,"stem":4783},"\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002F10.2013","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F10.2013",{"title":4785,"path":4786,"stem":4787},"MITRE CWE","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002Fmitre-cwe","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F11.mitre-cwe",{"title":4789,"path":4790,"stem":4791},"MITRE CWE 2.11","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002Fmitre-cwe-211","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F12.mitre-cwe-211",{"title":4793,"path":4794,"stem":4795},"MITRE CWE 3.1","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002Fmitre-cwe-31","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F13.mitre-cwe-31",{"title":4797,"path":4798,"stem":4799},"MITRE CWE 3.11","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fff-related-guidelines\u002Fmitre-cwe-311","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F7.ff-related-guidelines\u002F14.mitre-cwe-311",{"title":4801,"path":4802,"stem":4803},"GG. Risk Assessments","\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fgg-risk-assessments","4.sei-cert-c-coding-standard\u002F04.back-matter\u002F8.gg-risk-assessments",{"title":4805,"path":4806,"stem":4807,"children":4808},"Admin","\u002Fsei-cert-c-coding-standard\u002Fadmin","4.sei-cert-c-coding-standard\u002F05.admin\u002F1.index",[4809,4810,4814],{"title":4805,"path":4806,"stem":4807},{"title":4811,"path":4812,"stem":4813},"TODO List","\u002Fsei-cert-c-coding-standard\u002Fadmin\u002Ftodo-list","4.sei-cert-c-coding-standard\u002F05.admin\u002F2.todo-list",{"title":4815,"path":4816,"stem":4817},"Undefined and implementation-defined behaviors not deemed ruleworthy","\u002Fsei-cert-c-coding-standard\u002Fadmin\u002Fundefined-and-implementation-defined-behaviors-not-deemed-ruleworthy","4.sei-cert-c-coding-standard\u002F05.admin\u002F3.undefined-and-implementation-defined-behaviors-not-deemed-ruleworthy",{"title":4819,"path":4820,"stem":4821},"Coding Style Guidelines","\u002Fsei-cert-c-coding-standard\u002Fcoding-style-guidelines","4.sei-cert-c-coding-standard\u002F05.coding-style-guidelines",{"title":4823,"path":4824,"stem":4825},"Errata for SEI CERT C Coding Standard (2016 Edition)","\u002Fsei-cert-c-coding-standard\u002Ferrata-for-sei-cert-c-coding-standard-2016-edition","4.sei-cert-c-coding-standard\u002F06.errata-for-sei-cert-c-coding-standard-2016-edition",{"title":4827,"path":4828,"stem":4829},"Wiki Contents","\u002Fsei-cert-c-coding-standard\u002Fwiki-contents","4.sei-cert-c-coding-standard\u002F06.wiki-contents",{"title":4831,"path":4832,"stem":4833,"children":4834},"Recommendations","\u002Fsei-cert-c-coding-standard\u002Frecommendations","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F01.index",[4835,4836,4877,4894,4939,4980,5077,5094,5127,5196,5233,5318,5383,5432,5457,5550,5571,5628],{"title":4831,"path":4832,"stem":4833},{"title":3933,"path":4837,"stem":4838,"children":4839},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F01.index",[4840,4841,4845,4849,4853,4857,4861,4865,4869,4873],{"title":3933,"path":4837,"stem":4838},{"title":4842,"path":4843,"stem":4844},"API00-C. Functions should validate their parameters","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F02.api00-c",{"title":4846,"path":4847,"stem":4848},"API01-C. Avoid laying out strings in memory directly before sensitive data","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F03.api01-c",{"title":4850,"path":4851,"stem":4852},"API02-C. Functions that read or write to or from an array should take an argument to specify the source or target size","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F04.api02-c",{"title":4854,"path":4855,"stem":4856},"API03-C. Create consistent interfaces and capabilities across related functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F05.api03-c",{"title":4858,"path":4859,"stem":4860},"API04-C. Provide a consistent and usable error-checking mechanism","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F06.api04-c",{"title":4862,"path":4863,"stem":4864},"API05-C. Use conformant array parameters","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F07.api05-c",{"title":4866,"path":4867,"stem":4868},"API07-C. Enforce type safety","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F08.api07-c",{"title":4870,"path":4871,"stem":4872},"API09-C. Compatible values should have the same type","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F09.api09-c",{"title":4874,"path":4875,"stem":4876},"API10-C. APIs should have security options enabled by default","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fapplication-programming-interfaces-api\u002Fapi10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F02.application-programming-interfaces-api\u002F10.api10-c",{"title":3937,"path":4878,"stem":4879,"children":4880},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F03.arrays-arr\u002F1.index",[4881,4882,4886,4890],{"title":3937,"path":4878,"stem":4879},{"title":4883,"path":4884,"stem":4885},"ARR00-C. Understand how arrays work","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F03.arrays-arr\u002F2.arr00-c",{"title":4887,"path":4888,"stem":4889},"ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F03.arrays-arr\u002F3.arr01-c",{"title":4891,"path":4892,"stem":4893},"ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Farrays-arr\u002Farr02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F03.arrays-arr\u002F4.arr02-c",{"title":3967,"path":4895,"stem":4896,"children":4897},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F01.index",[4898,4899,4903,4907,4911,4915,4919,4923,4927,4931,4935],{"title":3967,"path":4895,"stem":4896},{"title":4900,"path":4901,"stem":4902},"STR00-C. Represent characters using an appropriate type","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F02.str00-c",{"title":4904,"path":4905,"stem":4906},"STR01-C. Adopt and implement a consistent plan for managing strings","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F03.str01-c",{"title":4908,"path":4909,"stem":4910},"STR02-C. Sanitize data passed to complex subsystems","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F04.str02-c",{"title":4912,"path":4913,"stem":4914},"STR03-C. Do not inadvertently truncate a string","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F05.str03-c",{"title":4916,"path":4917,"stem":4918},"STR04-C. Use plain char for characters in the basic character set","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F06.str04-c",{"title":4920,"path":4921,"stem":4922},"STR05-C. Use pointers to const when referring to string literals","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F07.str05-c",{"title":4924,"path":4925,"stem":4926},"STR06-C. Do not assume that strtok() leaves the parse string unchanged","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F08.str06-c",{"title":4928,"path":4929,"stem":4930},"STR09-C. Don't assume numeric values for expressions with type plain character","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F09.str09-c",{"title":4932,"path":4933,"stem":4934},"STR10-C. Do not concatenate different type of string literals","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F10.str10-c",{"title":4936,"path":4937,"stem":4938},"STR11-C. Do not specify the bound of a character array initialized with a string literal","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fcharacters-and-strings-str\u002Fstr11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F04.characters-and-strings-str\u002F11.str11-c",{"title":3997,"path":4940,"stem":4941,"children":4942},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F01.index",[4943,4944,4948,4952,4956,4960,4964,4968,4972,4976],{"title":3997,"path":4940,"stem":4941},{"title":4945,"path":4946,"stem":4947},"CON01-C. Acquire and release synchronization primitives in the same module, at the same level of abstraction","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F02.con01-c",{"title":4949,"path":4950,"stem":4951},"CON02-C. Do not use volatile as a synchronization primitive","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F03.con02-c",{"title":4953,"path":4954,"stem":4955},"CON03-C. Ensure visibility when accessing shared variables","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F04.con03-c",{"title":4957,"path":4958,"stem":4959},"CON04-C. Join or detach threads even if their exit status is unimportant","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F05.con04-c",{"title":4961,"path":4962,"stem":4963},"CON05-C. Do not perform operations that can block while holding a lock","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F06.con05-c",{"title":4965,"path":4966,"stem":4967},"CON06-C. Ensure that every mutex outlives the data it protects","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F07.con06-c",{"title":4969,"path":4970,"stem":4971},"CON07-C. Ensure that compound operations on shared variables are atomic","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F08.con07-c",{"title":4973,"path":4974,"stem":4975},"CON08-C. Do not assume that a group of calls to independently atomic methods is atomic","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F09.con08-c",{"title":4977,"path":4978,"stem":4979},"CON09-C. Avoid the ABA problem when using lock-free algorithms","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fconcurrency-con\u002Fcon09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F05.concurrency-con\u002F10.con09-c",{"title":4059,"path":4981,"stem":4982,"children":4983},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F01.index",[4984,4985,4989,4993,4997,5001,5005,5009,5013,5017,5021,5025,5029,5033,5037,5041,5045,5049,5053,5057,5061,5065,5069,5073],{"title":4059,"path":4981,"stem":4982},{"title":4986,"path":4987,"stem":4988},"DCL00-C. Const-qualify immutable objects","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F02.dcl00-c",{"title":4990,"path":4991,"stem":4992},"DCL01-C. Do not reuse variable names in subscopes","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F03.dcl01-c",{"title":4994,"path":4995,"stem":4996},"DCL02-C. Use visually distinct identifiers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F04.dcl02-c",{"title":4998,"path":4999,"stem":5000},"DCL03-C. Use a static assertion to test the value of a constant expression","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F05.dcl03-c",{"title":5002,"path":5003,"stem":5004},"DCL04-C. Do not declare more than one variable per declaration","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F06.dcl04-c",{"title":5006,"path":5007,"stem":5008},"DCL05-C. Use typedefs of non-pointer types only","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F07.dcl05-c",{"title":5010,"path":5011,"stem":5012},"DCL06-C. Use meaningful symbolic constants to represent literal values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F08.dcl06-c",{"title":5014,"path":5015,"stem":5016},"DCL07-C. Include the appropriate type information in function declarators","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F09.dcl07-c",{"title":5018,"path":5019,"stem":5020},"DCL08-C. Properly encode relationships in constant definitions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F10.dcl08-c",{"title":5022,"path":5023,"stem":5024},"DCL09-C. Declare functions that return errno with a return type of errno_t","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F11.dcl09-c",{"title":5026,"path":5027,"stem":5028},"DCL10-C. Maintain the contract between the writer and caller of variadic functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F12.dcl10-c",{"title":5030,"path":5031,"stem":5032},"DCL11-C. Understand the type issues associated with variadic functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F13.dcl11-c",{"title":5034,"path":5035,"stem":5036},"DCL12-C. Implement abstract data types using opaque types","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F14.dcl12-c",{"title":5038,"path":5039,"stem":5040},"DCL13-C. Declare function parameters that are pointers to values not changed by the function as const","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F15.dcl13-c",{"title":5042,"path":5043,"stem":5044},"DCL15-C. Declare file-scope objects or functions that do not need external linkage as static","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl15-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F16.dcl15-c",{"title":5046,"path":5047,"stem":5048},"DCL16-C. Use \"L,\" not \"l,\" to indicate a long value","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl16-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F17.dcl16-c",{"title":5050,"path":5051,"stem":5052},"DCL17-C. Beware of miscompiled volatile-qualified variables","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl17-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F18.dcl17-c",{"title":5054,"path":5055,"stem":5056},"DCL18-C. Do not begin integer constants with 0 when specifying a decimal value","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl18-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F19.dcl18-c",{"title":5058,"path":5059,"stem":5060},"DCL19-C. Minimize the scope of variables and functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl19-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F20.dcl19-c",{"title":5062,"path":5063,"stem":5064},"DCL20-C. Explicitly specify void when a function accepts no arguments","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl20-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F21.dcl20-c",{"title":5066,"path":5067,"stem":5068},"DCL21-C. Understand the storage of compound literals","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl21-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F22.dcl21-c",{"title":5070,"path":5071,"stem":5072},"DCL22-C. Use volatile for data that cannot be cached","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl22-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F23.dcl22-c",{"title":5074,"path":5075,"stem":5076},"DCL23-C. Guarantee that mutually visible identifiers are unique","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl23-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F06.declarations-and-initialization-dcl\u002F24.dcl23-c",{"title":4097,"path":5078,"stem":5079,"children":5080},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fenvironment-env","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F07.environment-env\u002F1.index",[5081,5082,5086,5090],{"title":4097,"path":5078,"stem":5079},{"title":5083,"path":5084,"stem":5085},"ENV01-C. Do not make assumptions about the size of an environment variable","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fenvironment-env\u002Fenv01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F07.environment-env\u002F2.env01-c",{"title":5087,"path":5088,"stem":5089},"ENV02-C. Beware of multiple environment variables with the same effective name","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fenvironment-env\u002Fenv02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F07.environment-env\u002F3.env02-c",{"title":5091,"path":5092,"stem":5093},"ENV03-C. Sanitize the environment when invoking external programs","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fenvironment-env\u002Fenv03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F07.environment-env\u002F4.env03-c",{"title":4123,"path":5095,"stem":5096,"children":5097},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F1.index",[5098,5099,5103,5107,5111,5115,5119,5123],{"title":4123,"path":5095,"stem":5096},{"title":5100,"path":5101,"stem":5102},"ERR00-C. Adopt and implement a consistent and comprehensive error-handling policy","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F2.err00-c",{"title":5104,"path":5105,"stem":5106},"ERR01-C. Use ferror() rather than errno to check for FILE stream errors","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F3.err01-c",{"title":5108,"path":5109,"stem":5110},"ERR02-C. Avoid in-band error indicators","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F4.err02-c",{"title":5112,"path":5113,"stem":5114},"ERR04-C. Choose an appropriate termination strategy","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F5.err04-c",{"title":5116,"path":5117,"stem":5118},"ERR05-C. Application-independent code should provide error detection without dictating error handling","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F6.err05-c",{"title":5120,"path":5121,"stem":5122},"ERR06-C. Understand the termination behavior of assert() and abort()","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F7.err06-c",{"title":5124,"path":5125,"stem":5126},"ERR07-C. Prefer functions that support error checking over equivalent functions that don't","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ferror-handling-err\u002Ferr07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F08.error-handling-err\u002F8.err07-c",{"title":4145,"path":5128,"stem":5129,"children":5130},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F01.index",[5131,5132,5136,5140,5144,5148,5152,5156,5160,5164,5168,5172,5176,5180,5184,5188,5192],{"title":4145,"path":5128,"stem":5129},{"title":5133,"path":5134,"stem":5135},"EXP00-C. Use parentheses for precedence of operation","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F02.exp00-c",{"title":5137,"path":5138,"stem":5139},"EXP02-C. Be aware of the short-circuit behavior of the logical AND and OR operators","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F03.exp02-c",{"title":5141,"path":5142,"stem":5143},"EXP03-C. Do not assume the size of a structure is the sum of the sizes of its members","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F04.exp03-c",{"title":5145,"path":5146,"stem":5147},"EXP05-C. Do not cast away a const qualification","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F05.exp05-c",{"title":5149,"path":5150,"stem":5151},"EXP07-C. Do not diminish the benefits of constants by assuming their values in expressions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F06.exp07-c",{"title":5153,"path":5154,"stem":5155},"EXP08-C. Ensure pointer arithmetic is used correctly","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F07.exp08-c",{"title":5157,"path":5158,"stem":5159},"EXP09-C. Use sizeof to determine the size of a type or variable","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F08.exp09-c",{"title":5161,"path":5162,"stem":5163},"EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F09.exp10-c",{"title":5165,"path":5166,"stem":5167},"EXP11-C. Do not make assumptions regarding the layout of structures with bit-fields","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F10.exp11-c",{"title":5169,"path":5170,"stem":5171},"EXP12-C. Do not ignore values returned by functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F11.exp12-c",{"title":5173,"path":5174,"stem":5175},"EXP13-C. Treat relational and equality operators as if they were nonassociative","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F12.exp13-c",{"title":5177,"path":5178,"stem":5179},"EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp14-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F13.exp14-c",{"title":5181,"path":5182,"stem":5183},"EXP15-C. Do not place a semicolon on the same line as an if, for, or while statement","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp15-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F14.exp15-c",{"title":5185,"path":5186,"stem":5187},"EXP16-C. Do not compare function pointers to constant values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp16-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F15.exp16-c",{"title":5189,"path":5190,"stem":5191},"EXP19-C. Use braces for the body of an if, for, or while statement","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp19-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F16.exp19-c",{"title":5193,"path":5194,"stem":5195},"EXP20-C. Perform explicit tests to determine success, true and false, and equality","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp20-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F09.expressions-exp\u002F17.exp20-c",{"title":4211,"path":5197,"stem":5198,"children":5199},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F1.index",[5200,5201,5205,5209,5213,5217,5221,5225,5229],{"title":4211,"path":5197,"stem":5198},{"title":5202,"path":5203,"stem":5204},"FLP00-C. Understand the limitations of floating-point numbers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F2.flp00-c",{"title":5206,"path":5207,"stem":5208},"FLP01-C. Take care in rearranging floating-point expressions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F3.flp01-c",{"title":5210,"path":5211,"stem":5212},"FLP02-C. Avoid using floating-point numbers when precise computation is needed","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F4.flp02-c",{"title":5214,"path":5215,"stem":5216},"FLP03-C. Detect and handle floating-point errors","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F5.flp03-c",{"title":5218,"path":5219,"stem":5220},"FLP04-C. Check floating-point inputs for exceptional values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F6.flp04-c",{"title":5222,"path":5223,"stem":5224},"FLP05-C. Do not use denormalized numbers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F7.flp05-c",{"title":5226,"path":5227,"stem":5228},"FLP06-C. Convert integers to floating point for floating-point operations","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F8.flp06-c",{"title":5230,"path":5231,"stem":5232},"FLP07-C. Cast the return value of a function that returns a floating-point type","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Ffloating-point-flp\u002Fflp07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F10.floating-point-flp\u002F9.flp07-c",{"title":4237,"path":5234,"stem":5235,"children":5236},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F01.index",[5237,5238,5242,5246,5250,5254,5258,5262,5266,5270,5274,5278,5282,5286,5290,5294,5298,5302,5306,5310,5314],{"title":4237,"path":5234,"stem":5235},{"title":5239,"path":5240,"stem":5241},"FIO01-C. Be careful using functions that use file names for identification","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F02.fio01-c",{"title":5243,"path":5244,"stem":5245},"FIO02-C. Canonicalize path names originating from tainted sources","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F03.fio02-c",{"title":5247,"path":5248,"stem":5249},"FIO03-C. Do not make assumptions about fopen() and file creation","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F04.fio03-c",{"title":5251,"path":5252,"stem":5253},"FIO05-C. Identify files using multiple file attributes","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F05.fio05-c",{"title":5255,"path":5256,"stem":5257},"FIO06-C. Create files with appropriate access permissions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F06.fio06-c",{"title":5259,"path":5260,"stem":5261},"FIO08-C. Take care when calling remove() on an open file","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F07.fio08-c",{"title":5263,"path":5264,"stem":5265},"FIO09-C. Be careful with binary data when transferring data across systems","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F08.fio09-c",{"title":5267,"path":5268,"stem":5269},"FIO10-C. Take care when using the rename() function","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F09.fio10-c",{"title":5271,"path":5272,"stem":5273},"FIO11-C. Take care when specifying the mode parameter of fopen()","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F10.fio11-c",{"title":5275,"path":5276,"stem":5277},"FIO13-C. Never push back anything other than one read character","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F11.fio13-c",{"title":5279,"path":5280,"stem":5281},"FIO14-C. Understand the difference between text mode and binary mode with file streams","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio14-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F12.fio14-c",{"title":5283,"path":5284,"stem":5285},"FIO15-C. Ensure that file operations are performed in a secure directory","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio15-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F13.fio15-c",{"title":5287,"path":5288,"stem":5289},"FIO17-C. Do not rely on an ending null character when using fread()","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio17-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F14.fio17-c",{"title":5291,"path":5292,"stem":5293},"FIO18-C. Never expect fwrite() to terminate the writing process at a null character","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio18-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F15.fio18-c",{"title":5295,"path":5296,"stem":5297},"FIO19-C. Do not use fseek() and ftell() to compute the size of a regular file","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio19-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F16.fio19-c",{"title":5299,"path":5300,"stem":5301},"FIO20-C. Avoid unintentional truncation when using fgets() or fgetws()","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio20-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F17.fio20-c",{"title":5303,"path":5304,"stem":5305},"FIO21-C. Do not create temporary files in shared directories","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio21-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F18.fio21-c",{"title":5307,"path":5308,"stem":5309},"FIO22-C. Close files before spawning processes","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio22-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F19.fio22-c",{"title":5311,"path":5312,"stem":5313},"FIO23-C. Do not exit with unflushed data in stdout or stderr","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio23-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F20.fio23-c",{"title":5315,"path":5316,"stem":5317},"FIO24-C. Do not open a file that is already open","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Finput-output-fio\u002Ffio24-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F11.input-output-fio\u002F21.fio24-c",{"title":4295,"path":5319,"stem":5320,"children":5321},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F01.index",[5322,5323,5327,5331,5335,5339,5343,5347,5351,5355,5359,5363,5367,5371,5375,5379],{"title":4295,"path":5319,"stem":5320},{"title":5324,"path":5325,"stem":5326},"INT00-C. Understand the data model used by your implementation(s)","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F02.int00-c",{"title":5328,"path":5329,"stem":5330},"INT01-C. Use size_t or rsize_t for all integer values representing the size of an object","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F03.int01-c",{"title":5332,"path":5333,"stem":5334},"INT04-C. Enforce limits on integer values originating from tainted sources","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F05.int04-c",{"title":5336,"path":5337,"stem":5338},"INT05-C. Do not use input functions to convert character data if they cannot handle all possible inputs","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F06.int05-c",{"title":5340,"path":5341,"stem":5342},"INT07-C. Use only explicitly signed or unsigned char type for numeric values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F07.int07-c",{"title":5344,"path":5345,"stem":5346},"INT08-C. Verify that all integer values are in range","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F08.int08-c",{"title":5348,"path":5349,"stem":5350},"INT09-C. Ensure enumeration constants map to unique values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F09.int09-c",{"title":5352,"path":5353,"stem":5354},"INT10-C. Do not assume a positive remainder when using the % operator","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F10.int10-c",{"title":5356,"path":5357,"stem":5358},"INT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F11.int12-c",{"title":5360,"path":5361,"stem":5362},"INT13-C. Use bitwise operators only on unsigned operands","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F12.int13-c",{"title":5364,"path":5365,"stem":5366},"INT14-C. Avoid performing bitwise and arithmetic operations on the same data","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint14-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F13.int14-c",{"title":5368,"path":5369,"stem":5370},"INT15-C. Use intmax_t or uintmax_t for formatted IO on programmer-defined integer types","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint15-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F14.int15-c",{"title":5372,"path":5373,"stem":5374},"INT16-C. Do not make assumptions about representation of signed integers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint16-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F15.int16-c",{"title":5376,"path":5377,"stem":5378},"INT17-C. Define integer constants in an implementation-independent manner","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint17-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F16.int17-c",{"title":5380,"path":5381,"stem":5382},"INT18-C. Evaluate integer expressions in a larger size before comparing or assigning to that size","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint18-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F12.integers-int\u002F17.int18-c",{"title":4329,"path":5384,"stem":5385,"children":5386},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F01.index",[5387,5388,5392,5396,5400,5404,5408,5412,5416,5420,5424,5428],{"title":4329,"path":5384,"stem":5385},{"title":5389,"path":5390,"stem":5391},"MEM00-C. Allocate and free memory in the same module, at the same level of abstraction","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F02.mem00-c",{"title":5393,"path":5394,"stem":5395},"MEM01-C. Store a new value in pointers immediately after free()","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F03.mem01-c",{"title":5397,"path":5398,"stem":5399},"MEM02-C. Immediately cast the result of a memory allocation function call into a pointer to the allocated type","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F04.mem02-c",{"title":5401,"path":5402,"stem":5403},"MEM03-C. Clear sensitive information stored in reusable resources","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F05.mem03-c",{"title":5405,"path":5406,"stem":5407},"MEM04-C. Beware of zero-length allocations","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F06.mem04-c",{"title":5409,"path":5410,"stem":5411},"MEM05-C. Avoid large stack allocations","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F07.mem05-c",{"title":5413,"path":5414,"stem":5415},"MEM06-C. Ensure that sensitive data is not written out to disk","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F08.mem06-c",{"title":5417,"path":5418,"stem":5419},"MEM07-C. Ensure that the arguments to calloc(), when multiplied, do not wrap","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F09.mem07-c",{"title":5421,"path":5422,"stem":5423},"MEM10-C. Define and use a pointer validation function","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F10.mem10-c",{"title":5425,"path":5426,"stem":5427},"MEM11-C. Do not assume infinite heap space","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F11.mem11-c",{"title":5429,"path":5430,"stem":5431},"MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmemory-management-mem\u002Fmem12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F13.memory-management-mem\u002F12.mem12-c",{"title":4359,"path":5433,"stem":5434,"children":5435},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F1.index",[5436,5437,5441,5445,5449,5453],{"title":4359,"path":5433,"stem":5434},{"title":5438,"path":5439,"stem":5440},"WIN00-C. Be specific when dynamically loading libraries","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win\u002Fwin00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F2.win00-c",{"title":5442,"path":5443,"stem":5444},"WIN01-C. Do not forcibly terminate execution","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win\u002Fwin01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F3.win01-c",{"title":5446,"path":5447,"stem":5448},"WIN02-C. Restrict privileges when spawning child processes","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win\u002Fwin02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F4.win02-c",{"title":5450,"path":5451,"stem":5452},"WIN03-C. Understand HANDLE inheritance","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win\u002Fwin03-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F5.win03-c",{"title":5454,"path":5455,"stem":5456},"WIN04-C. Consider encrypting function pointers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmicrosoft-windows-win\u002Fwin04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F14.microsoft-windows-win\u002F6.win04-c",{"title":4369,"path":5458,"stem":5459,"children":5460},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F01.index",[5461,5462,5466,5470,5474,5478,5482,5486,5490,5494,5498,5502,5506,5510,5514,5518,5522,5526,5530,5534,5538,5542,5546],{"title":4369,"path":5458,"stem":5459},{"title":5463,"path":5464,"stem":5465},"MSC00-C. Compile cleanly at high warning levels","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F02.msc00-c",{"title":5467,"path":5468,"stem":5469},"MSC01-C. Strive for logical completeness","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F03.msc01-c",{"title":5471,"path":5472,"stem":5473},"MSC04-C. Use comments consistently and in a readable fashion","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F04.msc04-c",{"title":5475,"path":5476,"stem":5477},"MSC05-C. Do not manipulate time_t typed values directly","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F05.msc05-c",{"title":5479,"path":5480,"stem":5481},"MSC06-C. Beware of compiler optimizations","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F06.msc06-c",{"title":5483,"path":5484,"stem":5485},"MSC07-C. Detect and remove dead code","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F07.msc07-c",{"title":5487,"path":5488,"stem":5489},"UTF8-related issues","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Futf8-related-issues","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F08.utf8-related-issues",{"title":5491,"path":5492,"stem":5493},"MSC11-C. Incorporate diagnostic tests using assertions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F09.msc11-c",{"title":5495,"path":5496,"stem":5497},"MSC12-C. Detect and remove code that has no effect or is never executed","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F10.msc12-c",{"title":5499,"path":5500,"stem":5501},"MSC13-C. Detect and remove unused values","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F11.msc13-c",{"title":5503,"path":5504,"stem":5505},"MSC14-C. Do not introduce unnecessary platform dependencies","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc14-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F12.msc14-c",{"title":5507,"path":5508,"stem":5509},"MSC15-C. Do not depend on undefined behavior","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc15-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F13.msc15-c",{"title":5511,"path":5512,"stem":5513},"MSC17-C. Finish every set of statements associated with a case label with a break statement","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc17-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F14.msc17-c",{"title":5515,"path":5516,"stem":5517},"MSC18-C. Be careful while handling sensitive data, such as passwords, in program code","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc18-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F15.msc18-c",{"title":5519,"path":5520,"stem":5521},"MSC19-C. For functions that return an array, prefer returning an empty array over a null value","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc19-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F16.msc19-c",{"title":5523,"path":5524,"stem":5525},"MSC20-C. Do not use a switch statement to transfer control into a complex block","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc20-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F17.msc20-c",{"title":5527,"path":5528,"stem":5529},"MSC21-C. Use robust loop termination conditions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc21-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F18.msc21-c",{"title":5531,"path":5532,"stem":5533},"MSC22-C. Use the setjmp(), longjmp() facility securely","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc22-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F19.msc22-c",{"title":5535,"path":5536,"stem":5537},"MSC23-C. Beware of vendor-specific library and language differences","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc23-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F20.msc23-c",{"title":5539,"path":5540,"stem":5541},"MSC24-C. Do not use deprecated or obsolescent functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc24-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F21.msc24-c",{"title":5543,"path":5544,"stem":5545},"MSC25-C. Do not use insecure or weak cryptographic algorithms","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc25-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F22.msc25-c",{"title":5547,"path":5548,"stem":5549},"Use subset of ASCII for safety","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fuse-subset-of-ascii-for-safety","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F15.miscellaneous-msc\u002F23.use-subset-of-ascii-for-safety",{"title":4407,"path":5551,"stem":5552,"children":5553},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F16.posix-pos\u002F1.index",[5554,5555,5559,5563,5567],{"title":4407,"path":5551,"stem":5552},{"title":5556,"path":5557,"stem":5558},"POS01-C. Check for the existence of links when dealing with files","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F16.posix-pos\u002F2.pos01-c",{"title":5560,"path":5561,"stem":5562},"POS02-C. Follow the principle of least privilege","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F16.posix-pos\u002F3.pos02-c",{"title":5564,"path":5565,"stem":5566},"POS04-C. Avoid using PTHREAD_MUTEX_NORMAL type mutex locks","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F16.posix-pos\u002F4.pos04-c",{"title":5568,"path":5569,"stem":5570},"POS05-C. Limit access to files by creating a jail","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fposix-pos\u002Fpos05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F16.posix-pos\u002F5.pos05-c",{"title":4477,"path":5572,"stem":5573,"children":5574},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F01.index",[5575,5576,5580,5584,5588,5592,5596,5600,5604,5608,5612,5616,5620,5624],{"title":4477,"path":5572,"stem":5573},{"title":5577,"path":5578,"stem":5579},"PRE00-C. Prefer inline or static functions to function-like macros","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F02.pre00-c",{"title":5581,"path":5582,"stem":5583},"PRE01-C. Use parentheses within macros around parameter names","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F03.pre01-c",{"title":5585,"path":5586,"stem":5587},"PRE02-C. Macro replacement lists should be parenthesized","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F04.pre02-c",{"title":5589,"path":5590,"stem":5591},"PRE04-C. Do not reuse a standard header file name","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre04-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F05.pre04-c",{"title":5593,"path":5594,"stem":5595},"PRE05-C. Understand macro replacement when concatenating tokens or performing stringification","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre05-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F06.pre05-c",{"title":5597,"path":5598,"stem":5599},"PRE06-C. Enclose header files in an include guard","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre06-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F07.pre06-c",{"title":5601,"path":5602,"stem":5603},"PRE07-C. Avoid using repeated question marks","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre07-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F08.pre07-c",{"title":5605,"path":5606,"stem":5607},"PRE08-C. Guarantee that header file names are unique","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre08-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F09.pre08-c",{"title":5609,"path":5610,"stem":5611},"PRE09-C. Do not replace secure functions with deprecated or obsolescent functions","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre09-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F10.pre09-c",{"title":5613,"path":5614,"stem":5615},"PRE10-C. Wrap multistatement macros in a do-while loop","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre10-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F11.pre10-c",{"title":5617,"path":5618,"stem":5619},"PRE11-C. Do not conclude macro definitions with a semicolon","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre11-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F12.pre11-c",{"title":5621,"path":5622,"stem":5623},"PRE12-C. Do not define unsafe macros","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre12-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F13.pre12-c",{"title":5625,"path":5626,"stem":5627},"PRE13-C. Use the Standard predefined macros to test for versions and features.","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fpreprocessor-pre\u002Fpre13-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F17.preprocessor-pre\u002F14.pre13-c",{"title":4495,"path":5629,"stem":5630,"children":5631},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fsignals-sig","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F18.signals-sig\u002F1.index",[5632,5633,5637,5641],{"title":4495,"path":5629,"stem":5630},{"title":5634,"path":5635,"stem":5636},"SIG00-C. Mask signals handled by noninterruptible signal handlers","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fsignals-sig\u002Fsig00-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F18.signals-sig\u002F2.sig00-c",{"title":5638,"path":5639,"stem":5640},"SIG01-C. Understand implementation-specific details regarding signal handler persistence","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fsignals-sig\u002Fsig01-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F18.signals-sig\u002F3.sig01-c",{"title":5642,"path":5643,"stem":5644},"SIG02-C. Avoid using signals to implement normal functionality","\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fsignals-sig\u002Fsig02-c","4.sei-cert-c-coding-standard\u002F08.recommendations\u002F18.signals-sig\u002F4.sig02-c",{"title":5646,"path":5647,"stem":5648},"CERT manifest files","\u002Fsei-cert-c-coding-standard\u002Fcert-manifest-files","4.sei-cert-c-coding-standard\u002F09.cert-manifest-files",1775657771923]