Checkout
stefan2
committed
on 08 Feb 11
LINUX and possibly other OS will over-commit memory. I.e. actual
memory pages allocation will be deferred to the time of the first
access. A… Show more
LINUX and possibly other OS will over-commit memory. I.e. actual

memory pages allocation will be deferred to the time of the first

access. As a result, the application may simply segfault later.

Therefore, ensure that the membuffer creation actually allocates

memory pages. Also, free the whole cache memory if allocation

of some parts failed. Continue with the cache disabled in that case.

* subversion/libsvn_fs_util/caching.c

 (svn_fs__get_global_membuffer_cache): if cache creation fails,

  actually free the previously allocated memory

* subversion/libsvn_subr/cache-membuffer.c

 (secure_aligned_pcalloc): replacement for apr_pcalloc that will

  not crash upon OOM

 (svn_cache__membuffer_cache_create): ensure that memory

  gets actually allocated despite of overcommitment by the OS;

  don't try to continue upon OOM Show less