On Tue, Sep 22, 2009 at 05:31, Senthil Kumaran S <senthil_at_collab.net> wrote:
>...
> +++ trunk/subversion/libsvn_client/commit_util.c Tue Sep 22 02:31:19 2009 (r39507)
> @@ -796,9 +796,10 @@ harvest_committables(apr_hash_t *committ
> /* A missing, schedule-delete child dir is
> allowable. Just don't try to recurse. */
> svn_node_kind_t childkind;
> - svn_error_t *err = svn_io_check_path(full_path,
> - &childkind,
> - iterpool);
> + svn_error_clear(err);
> + err = svn_io_check_path(full_path,
> + &childkind,
> + iterpool);
> if (! err
> && (childkind == svn_node_none)
> && (this_entry->schedule
That call to svn_error_clear() is wrong. If ERR has a value to be
cleared, then it should have been done higher in the function, where
it got set. It should not "simply hang out" and wait for this code to
clear it. Likewise, if there is no error, then this shouldn't be
invoked. Worse, this might try to do some kind of double-free which is
also very bad.
Bleah. Not good code.
-g
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2397735
Received on 2009-09-22 12:33:36 CEST