You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/02/01 23:19:26 UTC

svn commit: r1066247 - /subversion/trunk/subversion/libsvn_client/export.c

Author: hwright
Date: Tue Feb  1 22:19:26 2011
New Revision: 1066247

URL: http://svn.apache.org/viewvc?rev=1066247&view=rev
Log:
Change an instance of checksum comparison to compare checksums, rather than
ascii or binary digests.

* subversion/libsvn_client/export.c
  (close_file): Use the checksum APIs to compare the actual and expected
    checksums.

Modified:
    subversion/trunk/subversion/libsvn_client/export.c

Modified: subversion/trunk/subversion/libsvn_client/export.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/export.c?rev=1066247&r1=1066246&r2=1066247&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/export.c (original)
+++ subversion/trunk/subversion/libsvn_client/export.c Tue Feb  1 22:19:26 2011
@@ -881,11 +881,13 @@ change_dir_prop(void *dir_baton,
 /* Move the tmpfile to file, and send feedback. */
 static svn_error_t *
 close_file(void *file_baton,
-           const char *text_checksum,
+           const char *text_digest,
            apr_pool_t *pool)
 {
   struct file_baton *fb = file_baton;
   struct edit_baton *eb = fb->edit_baton;
+  svn_checksum_t *text_checksum;
+  svn_checksum_t *actual_checksum;
 
   /* Was a txdelta even sent? */
   if (! fb->tmppath)
@@ -893,22 +895,21 @@ close_file(void *file_baton,
 
   SVN_ERR(svn_stream_close(fb->tmp_stream));
 
-  if (text_checksum)
-    {
-      const char *actual_checksum =
-        svn_checksum_to_cstring(svn_checksum__from_digest(fb->text_digest,
-                                                          svn_checksum_md5,
-                                                          pool), pool);
+  SVN_ERR(svn_checksum_parse_hex(&text_checksum, svn_checksum_md5, text_digest,
+                                 pool));
+  actual_checksum = svn_checksum__from_digest(fb->text_digest,
+                                              svn_checksum_md5, pool);
 
-      if (actual_checksum && (strcmp(text_checksum, actual_checksum) != 0))
-        {
-          return svn_error_createf(SVN_ERR_CHECKSUM_MISMATCH, NULL,
+  if (!svn_checksum_match(text_checksum, actual_checksum))
+    {
+      return svn_error_createf(SVN_ERR_CHECKSUM_MISMATCH, NULL,
                           _("Checksum mismatch for '%s':\n"
                             "   expected:  %s\n"
                             "     actual:  %s\n"),
                           svn_dirent_local_style(fb->path, pool),
-                          text_checksum, actual_checksum);
-        }
+                          svn_checksum_to_cstring_display(text_checksum, pool),
+                          svn_checksum_to_cstring_display(actual_checksum,
+                                                          pool));
     }
 
   if ((! fb->eol_style_val) && (! fb->keywords_val) && (! fb->special))