all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
To: 10489@debbugs.gnu.org
Subject: bug#10489: 24.0.92; dired-do-copy may create infinite directory hierarchy
Date: Thu, 12 Jan 2012 22:33:38 +0100	[thread overview]
Message-ID: <87sjjkfvwt.fsf@gmail.com> (raw)
In-Reply-To: <87mx9su32g.fsf@web.de>


[-- Attachment #1.1: Type: text/plain, Size: 905 bytes --]

Hi, here a patch tha should fix this.
I resent it because I am not sure precedent post have been sent.

Michael Heerdegen <michael_heerdegen@web.de> writes:

> Hello,
>
> start emacs -Q.
>
> Suppose you have a directory "~/Test".  Do C-x d ~ RET.  Jump to the
> line showing "Test".  Hit C and enter "~/Test".  Answer "yes" to the
>
>  Recursive copies of /home/micha/Test? (yes or no) 
>
> question.
>
> This creates an huge recursive hierarchy of "Test" directories
>
>   ~/Test/Test/Test/Test/Test/Test/Test/Test/Test/Test/Test/Test/...
>
> The error
>
>   copy-directory: Variable binding depth exceeds max-specpdl-size
>
> finally stops that.
>
> The user may do something like that per accident.  Emacs should IMHO not
> behave like that.
>
> The problem also appears in Emacs 23.

-- 
  Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 

[-- Attachment #1.2: patch-r118414 --]
[-- Type: application/octet-stream, Size: 2107 bytes --]

# HG changeset patch
# User Thierry Volpiatto <thierry.volpiatto@gmail.com>
# Date 1326402527 -3600
# Node ID 0b39841e4c22aa2e241f185136c8fcec5d9acf18
# Parent  402d62612daf76522194f2a8d02463cbbd64626e
Fix error when trying to copy directory on itself (bug#10489).
* lisp/dired-aux.el (dired-copy-file-recursive): Error when trying to copy file or dir on itself.
(dired-create-file): Be sure destination is set when from and to are the same file/dir.
* lisp/files.el (copy-directory): Error when trying to copy file or dir on itself.

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1264,6 +1264,9 @@
 
 (defun dired-copy-file-recursive (from to ok-flag &optional
 				       preserve-time top recursive)
+  (when (string= (file-name-as-directory from)
+                 (file-name-as-directory to))
+    (error "Can't copy to same directory"))
   (let ((attrs (file-attributes from)))
     (if (and recursive
 	     (eq t (car attrs))
@@ -1431,7 +1434,10 @@
                          (marker-char (dired-file-marker from)) ; slow
                          (t nil))))
 	    (when (and (file-directory-p from)
-		       (file-directory-p to)
+		       (or (file-directory-p to)
+                           (string= (file-name-as-directory from)
+                                    (file-name-as-directory
+                                     (file-name-directory to))))
 		       (eq file-creator 'dired-copy-file))
 	      (setq to (file-name-directory to)))
             (condition-case err
diff --git a/lisp/files.el b/lisp/files.el
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4928,6 +4928,9 @@
 	    (format "Copy directory %s to: " dir)
 	    default-directory default-directory nil nil)
 	   current-prefix-arg t nil)))
+  (when (string= (file-name-as-directory directory)
+                 (file-name-as-directory newname))
+    (error "Can't copy to same directory"))
   ;; If default-directory is a remote directory, make sure we find its
   ;; copy-directory handler.
   (let ((handler (or (find-file-name-handler directory 'copy-directory)

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  reply	other threads:[~2012-01-12 21:33 UTC|newest]

Thread overview: 174+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-12 19:35 bug#10489: 24.0.92; dired-do-copy may create infinite directory hierarchy Michael Heerdegen
2012-01-12 21:33 ` Thierry Volpiatto [this message]
2012-01-13  7:23   ` Eli Zaretskii
2012-01-13  8:38     ` Thierry Volpiatto
2012-01-13 10:31       ` Eli Zaretskii
2012-01-13 11:19         ` Thierry Volpiatto
2012-01-13 12:01         ` Juanma Barranquero
2012-01-13 12:41           ` Eli Zaretskii
2012-01-13 13:01           ` Michael Albinus
2012-01-13 13:11             ` Juanma Barranquero
2012-01-13 13:13               ` Juanma Barranquero
2012-01-13 13:18                 ` Juanma Barranquero
2012-01-13 13:32                   ` Michael Albinus
2012-01-13 13:27             ` Stefan Monnier
2012-01-13 14:06               ` Thierry Volpiatto
2012-01-13 14:44               ` Michael Albinus
2012-01-13 15:13                 ` Stefan Monnier
2012-01-13 15:17                   ` Juanma Barranquero
2012-01-13 15:29                     ` Michael Albinus
2012-01-13 16:59                   ` Drew Adams
2012-01-13  9:38     ` Thierry Volpiatto
2012-01-13  9:49       ` Michael Albinus
2012-01-13 11:00         ` Thierry Volpiatto
2012-01-13 12:48           ` Michael Albinus
2012-01-13 13:55             ` Thierry Volpiatto
2012-01-13 14:14               ` Drew Adams
2012-01-13 15:06                 ` Juanma Barranquero
2012-01-13 15:14                   ` Michael Albinus
2012-01-13 18:43                     ` Thierry Volpiatto
2012-01-13 18:57                       ` Drew Adams
2012-01-13 19:11                         ` Thierry Volpiatto
2012-01-13 19:21                           ` Drew Adams
2012-01-13 19:35                             ` Michael Albinus
2012-01-13 20:56                               ` Drew Adams
2012-01-13 18:59                       ` Thierry Volpiatto
2012-01-13 19:04                       ` Michael Albinus
2012-01-13 19:17                         ` Thierry Volpiatto
2012-01-14  8:00                           ` Eli Zaretskii
2012-01-14 10:25                             ` Thierry Volpiatto
2012-01-15 12:50                               ` Michael Albinus
2012-01-15 17:20                                 ` Thierry Volpiatto
2012-01-15 17:31                                   ` Thierry Volpiatto
2012-01-15 18:24                                     ` Michael Albinus
2012-01-15 19:09                                       ` Thierry Volpiatto
2012-01-15 19:49                                         ` Michael Albinus
2012-01-15 21:01                                           ` Thierry Volpiatto
2012-01-16  8:58                                           ` Thierry Volpiatto
2012-01-16 13:56                                             ` Stefan Monnier
2012-01-16 14:13                                               ` Michael Albinus
2012-01-16 15:18                                                 ` Stefan Monnier
2012-01-16 15:27                                                   ` Michael Albinus
2012-01-16 21:40                                                     ` Stefan Monnier
2012-02-21 16:53                                                       ` Thierry Volpiatto
2012-02-21 17:59                                                         ` Stefan Monnier
2012-02-21 19:46                                                           ` Michael Albinus
2012-02-21 20:58                                                           ` Thierry Volpiatto
2012-02-21 22:51                                                             ` Stefan Monnier
2012-02-22 21:37                                                               ` Thierry Volpiatto
2012-02-22 22:00                                                                 ` Stefan Monnier
2012-02-23  6:15                                                                   ` Thierry Volpiatto
2012-02-23 16:01                                                                   ` Thierry Volpiatto
2012-02-23 17:18                                                                     ` Stefan Monnier
2012-02-23 22:10                                                                       ` Thierry Volpiatto
2012-02-24  5:37                                                                       ` Thierry Volpiatto
2012-02-24  7:16                                                                         ` Thierry Volpiatto
2012-02-24  9:19                                                                           ` Eli Zaretskii
2012-02-24  9:49                                                                             ` Thierry Volpiatto
2012-02-24 12:18                                                                             ` Thierry Volpiatto
2012-02-24 12:54                                                                               ` Michael Albinus
2012-02-24 13:36                                                                                 ` Thierry Volpiatto
2012-02-24 15:00                                                                                   ` Michael Albinus
2012-02-24 14:33                                                                                 ` Eli Zaretskii
2012-02-24 15:19                                                                                   ` Michael Albinus
2012-02-24 19:42                                                                                     ` Eli Zaretskii
2012-02-24 20:35                                                                                       ` Michael Albinus
2012-02-25  6:21                                                                                         ` Eli Zaretskii
2012-02-27  8:39                                                                                           ` Michael Albinus
2012-02-27 17:40                                                                                             ` Eli Zaretskii
2012-02-24 14:45                                                                                 ` Thierry Volpiatto
2012-02-24 15:23                                                                                   ` Michael Albinus
2012-02-24 14:39                                                                               ` Eli Zaretskii
2012-02-24 14:50                                                                                 ` Thierry Volpiatto
2012-02-24 15:26                                                                                   ` Michael Albinus
2012-02-24 15:52                                                                                     ` Thierry Volpiatto
2012-02-24 16:17                                                                                       ` Michael Albinus
2012-02-24 16:02                                                                                     ` Thierry Volpiatto
2012-02-24 16:15                                                                                       ` Drew Adams
2012-02-24 16:25                                                                                         ` Michael Albinus
2012-02-24 16:42                                                                                           ` Drew Adams
2012-02-24 17:04                                                                                             ` Michael Albinus
2012-02-24 16:21                                                                                       ` Michael Albinus
2012-02-24 17:23                                                                                         ` Thierry Volpiatto
2012-02-24 18:43                                                                                           ` Michael Albinus
2012-02-24 20:06                                                                                             ` Thierry Volpiatto
2012-02-24 20:04                                                                                       ` Eli Zaretskii
2012-02-24 20:33                                                                                         ` Michael Albinus
2012-02-24 21:54                                                                                           ` Thierry Volpiatto
2012-02-25  8:56                                                                                             ` Michael Albinus
2012-02-25  9:08                                                                                               ` Thierry Volpiatto
2012-02-26  9:48                                                                                                 ` Michael Albinus
2012-02-26 19:48                                                                                                   ` Thierry Volpiatto
2012-02-26 21:40                                                                                                     ` Stefan Monnier
2012-02-27  6:45                                                                                                       ` Thierry Volpiatto
2012-02-27  7:45                                                                                                         ` Stefan Monnier
2012-02-27  8:04                                                                                                           ` Thierry Volpiatto
2012-02-27 10:34                                                                                                             ` Stefan Monnier
2012-02-27 11:06                                                                                                               ` Thierry Volpiatto
2012-02-27 11:10                                                                                                                 ` Michael Albinus
2012-02-27 11:34                                                                                                                   ` Thierry Volpiatto
2012-02-27 13:24                                                                                                                 ` Stefan Monnier
2012-02-27 14:59                                                                                                                   ` Thierry Volpiatto
2012-02-27 17:38                                                                                                                     ` Stefan Monnier
2012-02-27 18:34                                                                                                                       ` Thierry Volpiatto
2012-02-27 19:08                                                                                                                         ` Michael Albinus
2012-02-27 19:33                                                                                                                           ` Thierry Volpiatto
2012-02-27 19:49                                                                                                                             ` Michael Albinus
2012-02-27 21:58                                                                                                                           ` Stefan Monnier
2012-02-27 22:11                                                                                                                             ` Thierry Volpiatto
2012-02-28  6:12                                                                                                                               ` Thierry Volpiatto
2012-02-28  7:14                                                                                                                                 ` Thierry Volpiatto
2012-02-28  7:34                                                                                                                                   ` Michael Albinus
2012-02-28  8:15                                                                                                                                     ` Thierry Volpiatto
2012-02-28  8:31                                                                                                                                       ` Michael Albinus
2012-02-28  9:34                                                                                                                                         ` Thierry Volpiatto
2012-02-28 10:15                                                                                                                                           ` Michael Albinus
2012-02-28 19:29                                                                                                                                     ` Stefan Monnier
2012-02-28 19:53                                                                                                                                       ` Michael Albinus
2012-02-29  2:01                                                                                                                                         ` Stefan Monnier
2012-02-29 11:04                                                                                                                                           ` Michael Albinus
2012-02-29 16:48                                                                                                                                             ` Stefan Monnier
2012-02-29 17:52                                                                                                                                               ` Thierry Volpiatto
2012-03-01  2:33                                                                                                                                                 ` Stefan Monnier
2012-03-01  8:37                                                                                                                                               ` Michael Albinus
2012-02-27 10:40                                                                                                   ` Thierry Volpiatto
2012-02-27 11:03                                                                                                     ` Michael Albinus
2012-02-27 11:29                                                                                                       ` Thierry Volpiatto
2012-02-27 14:19                                                                                                         ` Drew Adams
2012-02-27 13:54                                                                                                     ` Chong Yidong
2012-02-27 15:15                                                                                                       ` Thierry Volpiatto
2012-02-25  7:05                                                                                           ` Eli Zaretskii
2012-02-25  9:56                                                                                             ` Stefan Monnier
2012-02-25 13:05                                                                                               ` Michael Albinus
2012-02-25 15:36                                                                                               ` Michael Albinus
2012-02-25 15:53                                                                                                 ` Thierry Volpiatto
2012-02-25 22:41                                                                                                   ` Stefan Monnier
2012-02-26  9:21                                                                                                     ` Michael Albinus
2012-02-26 21:38                                                                                                       ` Stefan Monnier
2012-02-27  8:19                                                                                                         ` Michael Albinus
2012-02-27 10:39                                                                                                           ` Stefan Monnier
2012-02-25 13:03                                                                                             ` Michael Albinus
2012-02-25 14:35                                                                                               ` Stefan Monnier
2012-02-25 14:56                                                                                                 ` Lennart Borgman
2012-02-21 19:43                                                         ` Michael Albinus
2012-02-21 21:03                                                           ` Thierry Volpiatto
2012-01-16 14:09                                             ` Andreas Schwab
2012-01-16 19:14                                               ` Thierry Volpiatto
2012-01-17  6:06                                                 ` Thierry Volpiatto
2012-01-21 13:01                                               ` Thierry Volpiatto
2012-01-21 16:02                                                 ` Thierry Volpiatto
2012-01-13 19:43                       ` Stefan Monnier
2012-01-13 22:51                         ` Michael Albinus
2012-01-14  1:55                           ` Stefan Monnier
2012-01-14  8:59                             ` Eli Zaretskii
2012-01-14 14:19                               ` Stefan Monnier
2012-01-14 15:55                                 ` Eli Zaretskii
2012-01-15  5:59                                 ` Thierry Volpiatto
2012-01-15 12:40                                   ` Michael Albinus
2012-01-15 17:28                                     ` Thierry Volpiatto
2012-01-13 15:31                   ` Drew Adams
2012-01-13 15:41                 ` Eli Zaretskii
2012-01-13 16:56                   ` Drew Adams
2012-01-15 18:42                     ` Drew Adams
2012-01-13 10:32       ` Eli Zaretskii
2012-03-22  2:18 ` Michael Heerdegen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sjjkfvwt.fsf@gmail.com \
    --to=thierry.volpiatto@gmail.com \
    --cc=10489@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.