<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 首頁 新隨筆 聯(lián)系 聚合 管理
      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 閱讀(632) 評論(0)  編輯  收藏 所屬分類: cppZZ
    主站蜘蛛池模板: 国产三级免费电影| 无码日韩精品一区二区免费暖暖| 67194熟妇在线永久免费观看| 亚洲国产综合专区电影在线| 成人免费ā片在线观看| 日本免费网站观看| 亚洲无人区码一二三码区别图片| 亚洲日韩精品国产3区| 午夜性色一区二区三区免费不卡视频 | 亚洲AV中文无码乱人伦在线视色| 国产午夜亚洲精品| 毛片在线免费视频| 色噜噜噜噜亚洲第一| 九九全国免费视频| 亚洲无人区午夜福利码高清完整版| 久久香蕉国产线看观看亚洲片| 国内精品久久久久影院免费| 亚洲免费视频在线观看| 成人免费在线看片| 亚洲精华国产精华精华液| 亚洲 国产 图片| 三级黄色免费观看| 亚洲精品人成电影网| 成人免费无码视频在线网站| 春暖花开亚洲性无区一区二区| 亚洲日韩VA无码中文字幕| 国产免费AV片在线观看| 亚洲videosbestsex日本| 全免费a级毛片免费看| 亚洲国产精品成人精品小说| 成人午夜性A级毛片免费| 午夜不卡AV免费| 亚洲精品人成在线观看| 成人毛片免费网站| 中国黄色免费网站| 亚洲一区中文字幕| 亚洲视频人成在线播放| 91免费国产在线观看| 乱淫片免费影院观看| 亚洲国产成人精品无码区在线秒播| 全部免费国产潢色一级|