erc-commit
[Top][All Lists]
Advanced

[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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]