我正在尝试寻找无 malloc 的系列。考虑到我们有 1000 个测试用例。人们可能会忘记释放 ptr。请帮助我优化脚本。
正在测试的示例文件
Test(func_class,func1)
{
int i,j;
char* ptr = (char*) malloc(sizeof(char));
free(ptr);
}
Test(func_class,func1)
{
int i,j;
char* ptr = (char*) malloc(sizeof(char));
/ Memory Leak /
}
正在开发的脚本:
export MY_ROOT=`pwd`
_COUNT=0
pwd
_COUNT_WORD=0
filename=test.c
cat $filename | while read line
do
echo "Reading Line = $LINE"
for word in $line
do
_COUNT_WORD=$(($_COUNT_WORD+1))
echo $_COUNT_WORD $word
if [ "$word" == "malloc\(sizeof\(char\)\);" ]; then
_MALLOC_FLAG=1 #this part of the code is not reached
echo "Malloc Flag Hi"
echo $word[2]
fi
done
_COUNT_WORD=0
done
我在匹配 malloc 正则表达式时遇到了一些问题。我知道脚本需要大量修改,因为我们必须找到个人编写 malloc 的模式。