<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

    http://www.splint.org/manual/html/sec1.html



    Splint[1] is a tool for statically checking C programs for security vulnerabilities and programming mistakes.  Splint does many of the traditional lint checks including unused declarations, type inconsistencies, use before definition, unreachable code, ignored return values, execution paths with no return, likely infinite loops, and fall through cases.  More powerful checks are made possible by additional information given in source code annotations.  Annotations are stylized comments that document assumptions about functions, variables, parameters and types.  In addition to the checks specifically enabled by annotations, many of the traditional lint checks are improved by exploiting this additional information.

     

    As more effort is put into annotating programs, better checking results. A representational effort-benefit curve for using Splint is shown in Figure 1.  Splint is designed to be flexible and allow programmers to select appropriate points on the effort-benefit curve for particular projects.  As different checks are turned on and more information is given in code annotations the number of bugs that can be detected increases dramatically.

     

    Problems detected by Splint include:

    ·      Dereferencing a possibly null pointer (Section 2);

    ·      Using possibly undefined storage or returning storage that is not properly defined (Section 3);

    ·      Type mismatches, with greater precision and flexibility than provided by C compilers (Section 4.1–4.2);

    ·      Violations of information hiding (Section 4.3);

    ·      Memory management errors including uses of dangling references and memory leaks  (Section 5);

    ·      Dangerous aliasing (Section 6);

    ·      Modifications and global variable uses that are inconsistent with specified interfaces (Section 7);

    ·      Problematic control flow such as likely infinite loops (Section 8.3.1), fall through cases or incomplete switches (Section 8.3.2), and suspicious statements (Section 8.4);

    ·      Buffer overflow vulnerabilities (Section 9);

    ·      Dangerous macro implementations or invocations (Section 11); and

    ·      Violations of customized naming conventions.  (Section 12).

     

     



    Figure 1.  Typical Effort-Benefit Curve

     

    Splint checking can be customized to select what classes of errors are reported using command line flags and stylized comments in the code.  In addition, users can define new annotations and associated checks to extend Splint’s checking or to enforce application specific properties (Section 10).

     

    About This Document

    This document is a guide to using Splint.  Section 1 explains how to run Splint, interpret messages and control checking.  Sections 2–13 describe particular checks done by Splint.  There are some minor dependencies between sections, but in general they can be read in any order.  Section 14 covers issues involving libraries and header file inclusion important for running Splint on large systems.

     

    This document does not describe technical details of the checking.  For technical background and analysis of Splint’s effectiveness in practice, see the papers available at http://www.splint.org

    posted on 2007-05-25 17:59 jinfeng_wang 閱讀(628) 評論(0)  編輯  收藏 所屬分類: cppZZ
    主站蜘蛛池模板: 国产成人亚洲综合在线| 91久久精品国产免费一区| 国产亚洲精品a在线观看app| 67pao强力打造高清免费| 亚洲国产精品无码久久| 亚洲日韩精品一区二区三区| 四虎永久在线观看免费网站网址| 国产AV日韩A∨亚洲AV电影| 亚洲欧洲国产精品你懂的| 夜夜嘿视频免费看| 久久精品免费网站网| 亚洲熟妇无码AV| 亚洲AV永久无码精品水牛影视 | 无码区日韩特区永久免费系列 | 亚洲乱码日产精品一二三| 亚洲夜夜欢A∨一区二区三区| 亚洲成人在线免费观看| 羞羞视频在线观看免费| 亚洲国产成人资源在线软件| 亚洲精品视频免费| 成人在线免费观看| **真实毛片免费观看| 久久www免费人成看国产片| 亚洲妇女无套内射精| 亚洲精品视频观看| 国产成人亚洲综合无码精品| 凹凸精品视频分类国产品免费| 亚洲精品视频在线观看免费| 光棍天堂免费手机观看在线观看| 亚洲国产精品ⅴa在线观看| 亚洲精品电影在线| 亚洲大成色www永久网站| 亚洲天堂在线视频| 国产午夜影视大全免费观看| 久九九精品免费视频| 桃子视频在线观看高清免费视频| 国产精品偷伦视频免费观看了| 亚洲国产精品99久久久久久| 中文无码亚洲精品字幕| 亚洲一区二区三区精品视频| 亚洲麻豆精品果冻传媒|