Author: philip
Date: Thu Nov 24 14:15:26 2011
New Revision: 1205839

URL: http://svn.apache.org/viewvc?rev=1205839&view=rev
Log:
Fix a case of reading beyond allocated memory when asking
for locks at depth=infinity on a path that is a locked file.
Identified by valgrind running locks-test 4.

* subversion/libsvn_fs_base/bdb/locks-table.c
  (svn_fs_bdb__locks_get): Early return when found a locked file.

Modified:
    subversion/trunk/subversion/libsvn_fs_base/bdb/locks-table.c

Modified: subversion/trunk/subversion/libsvn_fs_base/bdb/locks-table.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/bdb/locks-table.c?rev=1205839&r1=1205838&r2=1205839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_base/bdb/locks-table.c (original)
+++ subversion/trunk/subversion/libsvn_fs_base/bdb/locks-table.c Thu Nov 24 
14:15:26 2011
@@ -224,7 +224,12 @@ svn_fs_bdb__locks_get(svn_fs_t *fs,
     {
       SVN_ERR(get_lock(&lock, fs, path, lock_token, trail, pool));
       if (lock && get_locks_func)
-        SVN_ERR(get_locks_func(get_locks_baton, lock, pool));
+        {
+          SVN_ERR(get_locks_func(get_locks_baton, lock, pool));
+
+          /* Found a lock so PATH is a file and we can ignore depth */
+          return SVN_NO_ERROR;
+        }
     }
 
   /* If we're only looking at PATH itself (depth = empty), stop here. */


Reply via email to