On Tue, May 17, 2011 at 7:13 PM, C. Michael Pilato <cmpil...@collab.net> wrote:
> On 05/17/2011 06:34 PM, Johan Corveleyn wrote:
>> On Tue, May 17, 2011 at 5:02 PM,  <cmpil...@apache.org> wrote:
>>> URL: 
>>> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/reporter.c?rev=1104309&r1=1104308&r2=1104309&view=diff
>>> ==============================================================================
>>> --- subversion/trunk/subversion/libsvn_repos/reporter.c (original)
>>> +++ subversion/trunk/subversion/libsvn_repos/reporter.c Tue May 17 15:02:05 
>>> 2011
>>> @@ -860,9 +860,23 @@ update_entry(report_baton_t *b, svn_revn
>>>     {
>>>       int distance = svn_fs_compare_ids(s_entry->id, t_entry->id);
>>>       if (distance == 0 && !any_path_info(b, e_path)
>>> -          && (!info || (!info->start_empty && !info->lock_token))
>>>           && (requested_depth <= wc_depth || t_entry->kind == 
>>> svn_node_file))
>>> -        return SVN_NO_ERROR;
>>> +        {
>>> +          if (!info)
>>> +            return SVN_NO_ERROR;
>>> +
>>> +          if (!info->start_empty)
>>> +            {
>>> +              svn_lock_t *lock;
>>> +
>>> +              if (!info->lock_token)
>>> +                return SVN_NO_ERROR;
>>> +
>>> +              SVN_ERR(svn_fs_get_lock(&lock, b->repos->fs, t_path, pool));
>>
>> Could t_path be NULL here (if only if a "malicious client" crafts a
>> special request)?
>>
>> The docstring of this function mentions that T_ENTRY and T_PATH may be
>> NULL. In this block we are sure that T_ENTRY is non-null, but what
>> about T_PATH?
>
> I think T_ENTRY and T_PATH come as a pair, either both NULL or both not.

Yes, it would seem so. And I've followed the callers of update_entry a
bit to assure myself that T_PATH can't be NULL (or if it would be,
earlier code would already have failed). Just making sure :-).

Thanks for fixing this issue.

-- 
Johan

Reply via email to