From d2a773ac3184a75ad5c98c315ea7cce8646fcf2a Mon Sep 17 00:00:00 2001 From: mdejong Date: Thu, 14 Mar 2002 20:51:44 +0000 Subject: * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Handle an SEH exception with EXCEPTION_EXECUTE_HANDLER instead of restarting the faulting instruction with EXCEPTION_CONTINUE_EXECUTION. Bug 466102 provides an example of how restarting could send Tcl into an infinite loop. [Patch 525746] --- ChangeLog | 9 +++++++++ win/tclWinFCmd.c | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 371a528..830415d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2002-03-14 Mo DeJong + + * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Handle + an SEH exception with EXCEPTION_EXECUTE_HANDLER instead + of restarting the faulting instruction with + EXCEPTION_CONTINUE_EXECUTION. Bug 466102 provides an + example of how restarting could send Tcl into an + infinite loop. [Patch 525746] + 2002-03-11 Mo DeJong * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, DoDeleteFile, diff --git a/win/tclWinFCmd.c b/win/tclWinFCmd.c index bd4ac32..b3104f1 100644 --- a/win/tclWinFCmd.c +++ b/win/tclWinFCmd.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWinFCmd.c,v 1.25 2002/03/12 11:32:19 mdejong Exp $ + * RCS: @(#) $Id: tclWinFCmd.c,v 1.26 2002/03/14 20:51:44 mdejong Exp $ */ #include "tclWinInt.h" @@ -186,7 +186,7 @@ DoRenameFile( if ((*tclWinProcs->moveFileProc)(nativeSrc, nativeDst) != FALSE) { retval = TCL_OK; } - } __except (EXCEPTION_CONTINUE_EXECUTION) {} + } __except (EXCEPTION_EXECUTE_HANDLER) {} /* * Avoid using control flow statements in the SEH guarded block! @@ -472,7 +472,7 @@ DoCopyFile( if ((*tclWinProcs->copyFileProc)(nativeSrc, nativeDst, 0) != FALSE) { retval = TCL_OK; } - } __except (EXCEPTION_CONTINUE_EXECUTION) {} + } __except (EXCEPTION_EXECUTE_HANDLER) {} /* * Avoid using control flow statements in the SEH guarded block! -- cgit v0.12