【发布时间】:2015-01-20 01:22:20
【问题描述】:
--- config.h
extern char userurl[3];
char userurl[3];
--- 索引.c
include "config.h"
int main(int argc, char *argv[]) {
char *req_g="",*req_p="";
get_arg("g=", &req_g, argc,argv);
get_arg("p=", &req_p, argc,argv);
strcat(userurl,req_g);
strcat(userurl,req_p);
..
xbuf_xcat(reply,"%s",userurl);
..
return 200;
}
然后我用http://127.0.0.1:8080/?index&g=a&p=b
我重新加载多次,结果重复:userurl is not freed...
为 gwan 声明 extern 或 global 变量的正确方法是什么?
【问题讨论】:
-
简单的解决方法:初始化你的变量。
userurl[0]='\0'另外,您的代码容易受到缓冲区溢出攻击(并且确实 userurl 已溢出),因此请注意这一点。
标签: global-variables g-wan object-persistence