<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 閱讀(627) 評論(0)  編輯  收藏 所屬分類: cppZZ
    主站蜘蛛池模板: 乱淫片免费影院观看| 免费人成大片在线观看播放| 成人性生交大片免费看中文| yy6080久久亚洲精品| 亚洲av成人一区二区三区观看在线 | 好爽…又高潮了免费毛片| 33333在线亚洲| 女人18毛片水真多免费播放| 亚洲1234区乱码| 成人免费无码大片A毛片抽搐 | 国产精品亚洲玖玖玖在线观看| 污视频网站免费观看| 亚洲男人的天堂在线va拉文| 国产日韩久久免费影院| 亚洲成AV人在线观看天堂无码| 少妇无码一区二区三区免费| 亚洲一区二区三区免费在线观看| 影音先锋在线免费观看| 日日摸夜夜添夜夜免费视频| 国产V亚洲V天堂无码| 国产精品怡红院永久免费| 亚洲精品亚洲人成在线| 免费一级特黄特色大片在线| XXX2高清在线观看免费视频| 亚洲AV中文无码字幕色三| AV大片在线无码永久免费| 亚洲国产精华液2020| 亚洲日韩精品一区二区三区无码 | 激情小说亚洲色图| 日韩一卡2卡3卡4卡新区亚洲| 一级毛片免费观看不卡视频| 亚洲美国产亚洲AV| 亚洲色婷婷六月亚洲婷婷6月| 蜜臀98精品国产免费观看| 国产成人+综合亚洲+天堂| 亚洲av无码乱码国产精品| 成年女人男人免费视频播放| 国产免费人成视频在线播放播| 亚洲毛片一级带毛片基地| 亚洲成A∨人片天堂网无码| 99精品免费观看|