ptrs.prop
来自「C程序漏洞检查」· PROP 代码 · 共 40 行
PROP
40 行
voiduno_check(void){ if (select("", DECL, ARRAY_DECL)) if (refine(DEREF, DEF)) { mark(1); // mark uninitialized pointer vars// list("mark 1"); // debugging } if (select("", USE|DEF, NONE)) if (refine(DEREF, ALIAS)) if (match(1, ANY, NONE)) { if (known_zero()) error("dereferencing uninitialized ptr"); else { if (known_nonzero()) no_error(); else error("dereferencing possibly uninitialized ptr"); } } if (select("", DEF, DEREF)) if (match(1, ANY, NONE)) { mark(2); // initialized ptrs are marked 2// list("mark 2"); } if (select("free", FCALL, NONE)) if (select("", USE, NONE)) if (match(1, ANY, NONE)) error("freeing an uninitialized ptr"); if (select("free", FCALL, NONE)) if (select("", USE, NONE)) if (match(2, ANY, NONE)) { mark(1); // this ptr is now uninitialized again// list("remark 1"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?