- 论坛徽章:
- 0
|
代码如下:
char *p0 = (char *)malloc( sizeof(char)* 100); //wanquan pipei
char *p1 = (char *)malloc( sizeof(char)* 100); //ISP pipei
char *p2 = (char *)malloc( sizeof(char)* 100); //privince and city pipei
char *p3 = (char *)malloc( sizeof(char)* 100); //country pipei
char *p4 = (char *)malloc( sizeof(char)* 100); //wanquan pipei
mysql_init(&mysql);
if( !mysql_real_connect(&mysql, "localhost", "root", "02211025", "UNS", 0, NULL, 0)){
printf(" could not connect to MySQL server\n") ;
exit (0);
}
sprintf(p0,"SELECT * FROM UNS WHERE ISP = '%s' AND Country = '%s' AND Privince = '%s' AND City = '%s'" , argv[4], argv[1], argv[2], argv[3] ) ;
printf("%s\n",p0) ; //test
sprintf(p1,"SELECT * FROM UNS WHERE ISP = '%s'" , argv[4] ) ;
printf("%s\n",p1) ; //test
sprintf(p2,"SELECT * FROM UNS WHERE Privince = '%s' AND City = '%s'" , argv[2], argv[3] ) ;
printf("%s\n",p2) ; //test
sprintf(p3,"SELECT * FROM UNS WHERE Country = '%s'" , argv[1] ) ;
printf("%s\n",p3) ; //test
sprintf(p4,"SELECT * FROM UNS WHERE ISP = '%s' AND Country = '%s' AND Privince = '%s' AND City = '%s'" , argv[4], argv[1], argv[2], argv[3] ) ;
printf("%s\n",p4) ; //test
//
//condition of wanquan pipei
//
printf("******wanquan pipei de qingkuang:*******\n");
if( mysql_query (&mysql, p4) !=0){
printf(" Error in query\n") ;
exit(0) ;
}
result = mysql_store_result (&mysql) ;
while((row = mysql_fetch_row (result))){
fprintf(stdout,"%s - %s - %s - %s - %s - %s - %s\n", row[0], row[1], row[2], row[3], row[4], row[5], row[6]);
}
........
free (p0) ;
free (p1) ;
free (p2) ;
free (p3) ;
free (p4) ;
mysql_free_result (result) ;
mysql_close (&mysql) ;
#######################
p0和p4是一样的,可是在红色标注处,用p4可以查询成功,可是用p0的时候就不能查询成功。
并且在释放内存的时候出现错误,也就是在用到
free (p0);
的时候 出现错误。
错误记录为 :
*** glibc detected *** ./serverselect_v_0_1_1: double free or corruption (!prev): 0x09d40008 ***
======= Backtrace: =========
/lib/i686/nosegneg/libc.so.6[0xcc5b01]
/lib/i686/nosegneg/libc.so.6(cfree+0x90)[0xcc91b0]
./serverselect_v_0_1_1[0x8048d64]
/lib/i686/nosegneg/libc.so.6(__libc_start_main+0xe0)[0xc72f70]
./serverselect_v_0_1_1[0x80486a1]
======= Memory map: ========
00242000-00243000 r-xp 00242000 00:00 0 [vdso]
002a2000-002ac000 r-xp 00000000 fd:00 65385 /lib/libnss_files-2.6.so
002ac000-002ad000 r--p 00009000 fd:00 65385 /lib/libnss_files-2.6.so
002ad000-002ae000 rw-p 0000a000 fd:00 65385 /lib/libnss_files-2.6.so
00483000-004aa000 r-xp 00000000 fd:00 65354 /lib/i686/nosegneg/libm-2.6.so
004aa000-004ab000 r--p 00026000 fd:00 65354 /lib/i686/nosegneg/libm-2.6.so
004ab000-004ac000 rw-p 00027000 fd:00 65354 /lib/i686/nosegneg/libm-2.6.so
00c5d000-00daf000 r-xp 00000000 fd:00 65352 /lib/i686/nosegneg/libc-2.6.so
00daf000-00db1000 r--p 00151000 fd:00 65352 /lib/i686/nosegneg/libc-2.6.so
00db1000-00db2000 rw-p 00153000 fd:00 65352 /lib/i686/nosegneg/libc-2.6.so
00db2000-00db5000 rw-p 00db2000 00:00 0
08048000-0804a000 r-xp 00000000 fd:00 1209133 /home/UNS/serverselect_v_0_1_1
0804a000-0804b000 rw-p 00001000 fd:00 1209133 /home/UNS/serverselect_v_0_1_1
09d40000-09d82000 rw-p 09d40000 00:00 0
4aea5000-4aec0000 r-xp 00000000 fd:00 67517 /lib/ld-2.6.so
4aec0000-4aec1000 r--p 0001a000 fd:00 67517 /lib/ld-2.6.so
4aec1000-4aec2000 rw-p 0001b000 fd:00 67517 /lib/ld-2.6.so
4aec4000-4aed4000 r-xp 00000000 fd:00 67528 /lib/libresolv-2.6.so
4aed4000-4aed5000 r--p 0000f000 fd:00 67528 /lib/libresolv-2.6.so
4aed5000-4aed6000 rw-p 00010000 fd:00 67528 /lib/libresolv-2.6.so
4aed6000-4aed8000 rw-p 4aed6000 00:00 0
4af3b000-4af50000 r-xp 00000000 fd:00 67534 /lib/libnsl-2.6.so
4af50000-4af51000 r--p 00014000 fd:00 67534 /lib/libnsl-2.6.so
4af51000-4af52000 rw-p 00015000 fd:00 67534 /lib/libnsl-2.6.so
4af52000-4af54000 rw-p 4af52000 00:00 0
4b855000-4b857000 r-xp 00000000 fd:00 67536 /lib/libcom_err.so.2.1
4b857000-4b858000 rw-p 00001000 fd:00 67536 /lib/libcom_err.so.2.1
4b85a000-4b85c000 r-xp 00000000 fd:00 67535 /lib/libkeyutils-1.2.so
4b85c000-4b85d000 rw-p 00001000 fd:00 67535 /lib/libkeyutils-1.2.so
4b85f000-4b866000 r-xp 00000000 fd:00 2189075 /usr/lib/libkrb5support.so.0.1
4b866000-4b867000 rw-p 00006000 fd:00 2189075 /usr/lib/libkrb5support.so.0.1
4b9f7000-4b9fa000 r-xp 00000000 fd:00 67519 /lib/libdl-2.6.so
4b9fa000-4b9fb000 r--p 00002000 fd:00 67519 /lib/libdl-2.6.so
4b9fb000-4b9fc000 rw-p 00003000 fd:00 67519 /lib/libdl-2.6.so
4b9fe000-4ba10000 r-xp 00000000 fd:00 67523 /lib/libz.so.1.2.3
4ba10000-4ba11000 rw-p 00011000 fd:00 67523 /lib/libz.so.1.2.3
4bc8e000-4bc99000 r-xp 00000000 fd:00 67527 /lib/libgcc_s-4.1.2-20070503.so.1
4bc99000-4bc9a000 rw-p 0000a000 fd:00 67527 /lib/libgcc_s-4.1.2-20070503.so.1
4c455000-4c571000 r-xp 00000000 fd:00 67537 /lib/libcrypto.so.0.9.8b
4c571000-4c583000 rw-p 0011c000 fd:00 67537 /lib/libcrypto.so.0.9.8b
4c583000-4c587000 rw-p 4c583000 00:00 0
4c589000-4c5ca000 r-xp 00000000 fd:00 67538 /lib/libssl.so.0.9.8b
4c5ca000-4c5ce000 rw-p 00040000 fd:00 67538 /lib/libssl.so.0.9.8b
4c5d0000-4c5f5000 r-xp 00000000 fd:00 2189076 /usr/lib/libk5crypto.so.3.1
4c5f5000-4c5f6000 rw-p 00025000 fd:00 2189076 /usr/lib/libk5crypto.so.3.1
4c5f8000-4c687000 r-xp 00000000 fd:00 2189077 /usr/lib/libkrb5.so.3.3
4c687000-4c689000 rw-p 0008f000 fd:00 2189077 /usr/lib/libkrb5.so.3.3
4c68b000-4c6b7000 r-xp 00000000 fd:00 2189078 /usr/lib/libgssapi_krb5.so.2.2
4c6b7000-4c6b9000 rw-p 0002c000 fd:00 2189078 /usr/lib/libgssapi_krb5.so.2.2
4cabc000-4cbdd000 r-xp 00000000 fd:00 624498 /usr/lib/mysql/libmysqlclient.so.15.0.0
4cbdd000-4cc1f000 rw-p 00120000 fd:00 624498 /usr/lib/mysql/libmysqlclient.so.15.0.0
4cc1f000-4cc20000 rw-p 4cc1f000 00:00 0
################
谢谢! |
|