[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Erc-commit] [commit][master] erc-dcc: Better handle case when client co
From: |
mwolson |
Subject: |
[Erc-commit] [commit][master] erc-dcc: Better handle case when client confirms too much. |
Date: |
Thu, 17 Jan 2008 03:40:04 -0500 |
commit 1f72adea933e56c542063c6ffe1ba3b92df50cd9
Author: Michael W. Olson <address@hidden>
Date: Thu Jan 17 02:36:03 2008 -0500
erc-dcc: Better handle case when client confirms too much.
diff --git a/ChangeLog b/ChangeLog
index eff30d5..61f3e5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,9 @@
(erc-dcc-display-send): New function split from erc-dcc-send-hook.
(erc-dcc-send-connect-hook): Use it -- we don't like lambda forms
in hooks.
+ (erc-dcc-send-filter): Display byte count if the client confirmed
+ too much, and kill the buffer. Otherwise a DoS might be possible
+ by making Emacs run out of RAM.
* erc-networks.el (erc-server-alist): Add Rizon network.
diff --git a/erc-dcc.el b/erc-dcc.el
index 3c8d302..7f678e0 100644
--- a/erc-dcc.el
+++ b/erc-dcc.el
@@ -742,7 +742,11 @@ bytes sent."
((> confirmed-marker sent-marker)
(erc-display-message
nil 'notice parent
- (format "DCC: Client confirmed too much!"))
+ (format "DCC: Client confirmed too much (%s vs %s)!"
+ (marker-position confirmed-marker)
+ (marker-position sent-marker)))
+ (set-buffer-modified-p nil)
+ (kill-buffer (current-buffer))
(delete-process proc))))))
(defun erc-dcc-display-send (proc)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Erc-commit] [commit][master] erc-dcc: Better handle case when client confirms too much.,
mwolson <=