> -----Original Message----- > From: Evgeny Kotkov [mailto:evgeny.kot...@visualsvn.com] > Sent: maandag 9 februari 2015 15:06 > To: Subversion Development > Subject: Re: svn commit: r1483570 - > /subversion/trunk/subversion/libsvn_repos/log.c > > Stefan Fuhrmann <stef...@apache.org> writes: > > > Within libsvn_repos get_log functionality, pass the list of wanted revprops > > around as an array of svn_string_t* instead of const char*. The added > > length > > info allows for more effient functions to be used. Do that. > > [...] > > > - char *name = APR_ARRAY_IDX(revprops, i, char *); > > - svn_string_t *value = svn_hash_gets(r_props, name); > > - if (censor_revprops > > - && !(strcmp(name, SVN_PROP_REVISION_AUTHOR) == 0 > > - || strcmp(name, SVN_PROP_REVISION_DATE) == 0)) > > - /* ... but we can only return author/date. */ > > - continue; > > [...] > > > + const svn_string_t *name > > + = APR_ARRAY_IDX(revprops, i, const svn_string_t *); > > + svn_string_t *value > > + = apr_hash_get(r_props, name->data, name->len); > > + if (censor_revprops > > + && !(strncmp(name->data, SVN_PROP_REVISION_AUTHOR, > > + name->len) == 0 > > + || strncmp(name->data, SVN_PROP_REVISION_DATE, > > + name->len) == 0)) > > + /* ... but we can only return author/date. */ > > + continue; > > As it turns out, this particular micro-optimization makes a data leak > possible. > This is not a real security issue, as the change happened on trunk and didn't > become part of any released version. Still, I think that we should fix this > prior to making 1.9 public. > > I don't know what are the performance implications of using strncmp() in favor > of strcmp(), but the new check will not censor properties like 's', 'sv', ... > 'svn:a', 'svn:d' and others. This means that we might incorrectly leak these > revision properties for partially visible revisions. Subversion 1.8.x only > outputs svn:date / svn:author when perfoming log requests for partially > visible > revisions, and *all* other revision properties are censored out, but with this > changeset this is no longer true. > > I committed a failing test in r1658406. As for fixing this issue, I think > that > we should entirely revert this changeset.
+1 Bert