# HG changeset patch # User Louis Opter # Date 1269544195 -3600 # Node ID 3a06b35bd5919664b485782ece073b323faa1e8f # Parent a85cbad8dadb5a823df159c081811722dfe4e79f Avoid infinite recursion on hook call ("clone bomb") diff -r a85cbad8dadb -r 3a06b35bd591 doxyhook.py --- a/doxyhook.py Thu Mar 25 18:51:20 2010 +0100 +++ b/doxyhook.py Thu Mar 25 20:09:55 2010 +0100 @@ -50,11 +50,15 @@ def __exit__(self, exc_type, exc_value, traceback): shutil.rmtree(self.__path) -def clone_repo(ui, source, dest): +def clone_repo(sui, source, dest): """Clone repo at directory source to directory dest""" - commands.clone(ui, source, dest, opts={'uncompressed': True}) - ui.status('doxyhook: working copy created.\n') + # We have to use a different ui than the source ui. If you don't take this + # precaution your hook will be called recursively by the clone command, + # leading to a clone bomb. + cui = ui.ui() + commands.clone(cui, source, dest, opts={'uncompressed': True}) + sui.status('doxyhook: working copy created.\n') def gen_doc(clone): """