1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-09 17:23:13 +02:00

- Fixed yet another fun remote includes memory corruption crash bug due

to curl strangeness (took me 2 hours to trace down, great!).
This commit is contained in:
Bram Matthys
2004-03-04 19:33:59 +00:00
parent c389dc58b5
commit 8a6619c0a8
3 changed files with 15 additions and 8 deletions
+2
View File
@@ -2991,3 +2991,5 @@ seen. gmtime warning still there
- Cosmetic doc updates (#0001596) reported by HERZ.
- Updated SSL error for underlying syscall error a bit (#0001615).
- Minor doc updates on SSL (mIRC now supports SSL a bit).
- Fixed yet another fun remote includes memory corruption crash bug due
to curl strangeness (took me 2 hours to trace down, great!).
+2 -2
View File
@@ -21,7 +21,7 @@
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
<font size="4">Version: 3.2</font><br>
<b>Current Version:</b> 3.2 RC1 *CVS*<br>
<b>Last doc update:</b> 2004-03-03</div>
<b>Last doc update:</b> 2004-03-04</div>
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke / McSkaf<br>
<b>Contributors:</b> Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
<b>Documentation:</b> CKnight^ / Syzop<br>
@@ -1877,7 +1877,7 @@ spamfilter {
<p><b>regex</b> is the regex to be matched.<br>
<b>target</b> specifies the targets, possible targets are: channel, private, private-notice, channel-notice,
part, quit, dcc.<br>
<b>action</b> specifies the action to be taken, possible values are: kill, tempshun, shun, kline, gline, zline, gzline, block<br>
<b>action</b> specifies the action to be taken, see <a href="#feature_spamfilter">here</a> for a list of possible actions.<br>
<b>reason</b> optional: specifies the ban or block reason, else the default is used.<br>
<b>ban-time</b> optional: specifies the duration of a *line ban, else the default is used (1 day).<br>
</p>
+11 -6
View File
@@ -316,10 +316,11 @@ void url_do_transfers_async(void)
char *url;
long code;
long last_mod;
curl_easy_getinfo(msg->easy_handle, CURLINFO_RESPONSE_CODE, &code);
curl_easy_getinfo(msg->easy_handle, CURLINFO_PRIVATE, (char*)&handle);
curl_easy_getinfo(msg->easy_handle, CURLINFO_EFFECTIVE_URL, &url);
curl_easy_getinfo(msg->easy_handle, CURLINFO_FILETIME, &last_mod);
CURL *easyhand = msg->easy_handle;
curl_easy_getinfo(easyhand, CURLINFO_RESPONSE_CODE, &code);
curl_easy_getinfo(easyhand, CURLINFO_PRIVATE, (char*)&handle);
curl_easy_getinfo(easyhand, CURLINFO_EFFECTIVE_URL, &url);
curl_easy_getinfo(easyhand, CURLINFO_FILETIME, &last_mod);
fclose(handle->fd);
#if defined(IRC_UID) && defined(IRC_GID)
if (!loop.ircd_booted)
@@ -347,8 +348,12 @@ void url_do_transfers_async(void)
remove(handle->filename);
}
free(handle);
curl_multi_remove_handle(multihandle, msg->easy_handle);
curl_easy_cleanup(msg->easy_handle);
curl_multi_remove_handle(multihandle, easyhand);
/* NOTE: after curl_multi_remove_handle() you cannot use
* 'msg' anymore because it has freed by curl (as of v7.11.0),
* therefore 'easyhand' is used... fun! -- Syzop
*/
curl_easy_cleanup(easyhand);
}
}
}