|
.........
{
newstr = (char *) malloc(vl);
if (newstr == 0) return NULL;
snprintf(newstr, vl, "%s=%s", var, value);
for (i = 0; (p = script_env)!= NULL, i<_MAX_VAR-1; i++) {
if (strncmp(p, var, varl) == 0 && p[varl] == '=') {
/*free(p);
script_env = newstr;
return script_env;*/
syslog(LOG_INFO, "script_env[%d] = %s", i ,script_env);
}
}
if (script_env==NULL)
script_env = newstr;
return script_env;
}
...............
就是这个strncmp,如果注释掉程序正常,若存在则程序异常退出,感觉与内存泄露有关,但看不出问题在哪啊? |
|