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 + -
显示快捷键?