You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ko...@apache.org on 2016/01/15 15:05:24 UTC

svn commit: r1724809 - /subversion/trunk/subversion/libsvn_subr/pool.c

Author: kotkov
Date: Fri Jan 15 14:05:24 2016
New Revision: 1724809

URL: http://svn.apache.org/viewvc?rev=1724809&view=rev
Log:
Following up on r1724784, mark the STATUS_NO_MEMORY exception as
non-continuable [1].

We treat out-of-memory conditions as unrecoverable, and using a continuable
exception could lead to third-party API users accidentally swallowing these
exceptions and resuming execution in their structured exception handlers.

[1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms680552

* subversion/libsvn_subr/pool.c
  (abort_on_pool_failure): Set flags to EXCEPTION_NONCONTINUABLE.

Modified:
    subversion/trunk/subversion/libsvn_subr/pool.c

Modified: subversion/trunk/subversion/libsvn_subr/pool.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/pool.c?rev=1724809&r1=1724808&r2=1724809&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/pool.c (original)
+++ subversion/trunk/subversion/libsvn_subr/pool.c Fri Jan 15 14:05:24 2016
@@ -58,7 +58,7 @@ abort_on_pool_failure(int retcode)
 #ifdef WIN32
   /* Provide a way to distinguish the out-of-memory error from abort(). */
   if (retcode == APR_ENOMEM)
-    RaiseException(STATUS_NO_MEMORY, 0, 0, NULL);
+    RaiseException(STATUS_NO_MEMORY, EXCEPTION_NONCONTINUABLE, 0, NULL);
 #endif
 
   abort();