背景:运行项目代码时出现了core,通过gdb调试发现程序最后是在调用mysql_num_rows()时产生了段错误,且入参为0x0;也就是说mysql_num_rows()这个api没有做入参检查。
为了验证这个猜想写了个最简单的代码测试:
#include<mysql/mysql.h>
#include<stdio.h>
int main()
{
mysql_num_rows(NULL);
return ;
}
结果:
gcc mysql_row.c -lmysqlclient -o mysql_row
./mysql_row
段错误 (core dumped)
结论:mysql_num_rows()这个api确实没做入参检查 使用时一定记得自己做入参检查 = =!
本文通过一个简单的示例程序验证了mysql_num_rows() API 在调用时未进行入参检查的问题,并导致了段错误。提醒开发者在使用此API时自行进行必要的参数检查。
550

被折叠的 条评论
为什么被折叠?



