You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by kf...@collab.net on 2005/04/04 19:55:53 UTC

Re: svn commit: r13855 - in trunk/subversion: include libsvn_fs_base libsvn_fs_fs libsvn_ra_dav libsvn_ra_svn libsvn_repos libsvn_subr libsvn_wc mod_dav_svn svnserve

Greg Hudson <gh...@MIT.EDU> writes:
> On Sat, 2005-04-02 at 10:06, jpieper@tigris.org wrote:
> > Do not assume that svn_md5_digest_to_cstring will always return a
> > valid string.  If its input digest is all 0's, it will return a NULL
> > instead.
> 
> Wow.  What a horrible botch (not yours).

Mine actually (though I'm not sure I agree it's a horrible botch) :-).

> What if a file happens to digest to all-zeros?  If the filesystem code
> is going to special-case this particular digest, then the special case
> should be in the filesystem code, not buried deep in libsvn_subr.

Note that the filesystem code does use the all-zeros checksum
specially.  See the documentation for svn_fs_file_md5_checksum():

 * [...]
 *
 * If the filesystem does not have a prerecorded checksum for @a path,
 * do not calculate a checksum dynamically, just put all 0's into @a
 * digest.  (By convention, the all-zero checksum is considered to
 * match any checksum.)
 *
 * [...]

Or are you just saying that the horrible botch is the fact that this
svn_fs special case is affecting an API in libsvn_subr?  I could buy
that, and would be in favor of your suggestion below:

> I'd prefer the new function be called svn_digest_to_cstring2, and the
> old function be deprecated.

I'd be happy to make that happen right now, if no one objects.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org