s...@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);
> 
> 

Reply via email to