I found another bug. It has to do with parseurl(). What happened is that
if there is an error, parseurl() will call freeurl(url) then return(1).
However, two places in indexer.c will then call freeurl(url) again after
getting a 1 return from parseurl().
According to man page, free() of a pointer that was previously freed is
"undefined behavior". Well, on Linux RH 6.1, glibc 2.1.2, it core dumped.
Here's the patch:
*** indexer.c Mon Dec 6 00:06:14 1999
--- indexer.c.new Mon Dec 6 23:06:32 1999
***************
*** 1083,1089 ****
if (parseurl(&curURL, cururl)) {
DeleteUrl(url_id);
udm_log(WARNING, "Invalid URL: %s ... deleted", cururl);
- freeurl(&curURL);
continue;
}
if ((i = FindServer(cururl)) < 0) {
--- 1083,1088 ----
***************
*** 1171,1177 ****
if (parseurl(&realURL, str1)) {
udm_log(UDM_LOG_ERROR, "Error in aliased
URL: '%
s'",
str1);
- freeurl(&curURL);
continue;
}
break;
--- 1170,1175 ----
Tin Le
______________
If you want to unsubscribe send "unsubscribe udmsearch"
to [EMAIL PROTECTED]