[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1330571 - /subversion/trunk/subversion/mod_dav_svn/lock.c

From: Daniel Shahaf <danielsh_at_elego.de>
Date: Thu, 26 Apr 2012 07:45:48 +0300

stsp_at_apache.org wrote on Wed, Apr 25, 2012 at 21:38:08 -0000:
> Author: stsp
> Date: Wed Apr 25 21:38:08 2012
> New Revision: 1330571
>
> URL: http://svn.apache.org/viewvc?rev=1330571&view=rev
> Log:
> Follow-up to 1330516: Restore client-side output expected by some tests.
>
> Should fix failing tests on the neon-bdb buildbot.
>
> * subversion/mod_dav_svn/lock.c
> (append_locks, refresh_locks): Do no sanitize errors that the test suite
> expects to see. These errors will (hopefully!) never expose sensitive
> information to clients.
>
> Modified:
> subversion/trunk/subversion/mod_dav_svn/lock.c
>
> Modified: subversion/trunk/subversion/mod_dav_svn/lock.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/lock.c?rev=1330571&r1=1330570&r2=1330571&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/mod_dav_svn/lock.c (original)
> +++ subversion/trunk/subversion/mod_dav_svn/lock.c Wed Apr 25 21:38:08 2012
> @@ -765,7 +765,12 @@ append_locks(dav_lockdb *lockdb,
> DAV_ERR_LOCK_SAVE_LOCK,
> "Anonymous lock creation is not allowed.");
> }
> - else if (serr && serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE)
> + else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
> + serr->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||
> + serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
> + serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
> + serr->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN ||
> + serr->apr_err == SVN_ERR_FS_OUT_OF_DATE))
> return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
> "Failed to create new lock.",
> resource->pool);

You need:

     else if (serr)
       /* do something */

otherwise you leak SERR.

> @@ -960,7 +965,12 @@ refresh_locks(dav_lockdb *lockdb,
> DAV_ERR_LOCK_SAVE_LOCK,
> "Anonymous lock refreshing is not allowed.");
> }
> - else if (serr && serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE)
> + else if (serr && (serr->apr_err == SVN_ERR_REPOS_HOOK_FAILURE ||
> + serr->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED ||
> + serr->apr_err == SVN_ERR_FS_NO_SUCH_LOCK ||
> + serr->apr_err == SVN_ERR_FS_LOCK_EXPIRED ||
> + serr->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN ||
> + serr->apr_err == SVN_ERR_FS_OUT_OF_DATE))
> return dav_svn__convert_err(serr, HTTP_INTERNAL_SERVER_ERROR,
> "Failed to refresh existing lock.",
> resource->pool);
>
>
Received on 2012-04-26 06:46:26 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.