http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-09-07#l40
describes a scenario where a file handle would be leaked due to a pool
not being freed; specifically,

        parent(pool) calls child(pool);
        child(pool) allocates handle from POOL;
        child(pool) triggers an SVN_ERR();
        handle remains allocated.

Are there any other cases where this would be a problem?


Should we adopt a strategy of

        #define SVN_ERR_CLEAR(expr, scratch_pool)
                do {
                        svn_error_clear(scratch_pool);
                        SVN_ERR(expr);
                } while(0)

at least in some functions taking a scratch_pool argument?


(We could have this only for maintainer-mode builds, and
#define SVN_ERR_CLEAR(expr, pool) SVN_ERR(expr) 
for normal builds.)

Reply via email to