]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/verify.c
Fix a cosmetic bug that caused spurious OpenSSL error messages; there is no reason...
[bacula/bacula] / bacula / src / filed / verify.c
index c882a8a649f353169878b5bafd67b63b6e78a6a5..4d5ae5ab2e5f68ebbeb267bad911d3a1d1eca305 100644 (file)
@@ -232,7 +232,7 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level)
       /* compute MD5 or SHA1 hash */
       if (digest) {
          char md[CRYPTO_DIGEST_MAX_SIZE];
-         size_t size;
+         uint32_t size;
 
          size = sizeof(md);
          
@@ -241,14 +241,14 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level)
             return 1;
          }
 
-         if (crypto_digest_finalize(digest, &md, &size)) {
+         if (crypto_digest_finalize(digest, (uint8_t *)md, &size)) {
             char *digest_buf;
             const char *digest_name;
             
-            digest_buf = (char *) malloc(BASE64_SIZE(size));
+            digest_buf = (char *)malloc(BASE64_SIZE(size));
             digest_name = crypto_digest_name(digest);
 
-            bin_to_base64(digest_buf, (char *) md, size);
+            bin_to_base64(digest_buf, BASE64_SIZE(size), md, size, true);
             Dmsg3(400, "send inx=%d %s=%s\n", jcr->JobFiles, digest_name, digest_buf);
             bnet_fsend(dir, "%d %d %s *%s-%d*", jcr->JobFiles, digest_stream, digest_buf,
                        digest_name, jcr->JobFiles);
@@ -277,7 +277,8 @@ int digest_file(JCR *jcr, FF_PKT *ff_pkt, DIGEST *digest)
 
    if (ff_pkt->statp.st_size > 0 || ff_pkt->type == FT_RAW
          || ff_pkt->type == FT_FIFO) {
-      if ((bopen(&bfd, ff_pkt->fname, O_RDONLY | O_BINARY, 0)) < 0) {
+      int noatime = ff_pkt->flags & FO_NOATIME ? O_NOATIME : 0;
+      if ((bopen(&bfd, ff_pkt->fname, O_RDONLY | O_BINARY | noatime, 0)) < 0) {
          ff_pkt->ff_errno = errno;
          berrno be;
          be.set_errno(bfd.berrno);
@@ -307,7 +308,7 @@ int digest_file(JCR *jcr, FF_PKT *ff_pkt, DIGEST *digest)
    }
 
    if (digest && ff_pkt->flags & FO_HFSPLUS) {
-      crypto_digest_update(digest, ff_pkt->hfsinfo.fndrinfo, 32);
+      crypto_digest_update(digest, (uint8_t *)ff_pkt->hfsinfo.fndrinfo, 32);
    }
 #endif
 
@@ -323,8 +324,8 @@ int read_digest(BFILE *bfd, DIGEST *digest, JCR *jcr)
    char buf[DEFAULT_NETWORK_BUFFER_SIZE];
    int64_t n;
 
-   while ((n=bread(bfd, &buf, sizeof(buf))) > 0) {
-      crypto_digest_update(digest, &buf, n);
+   while ((n=bread(bfd, buf, sizeof(buf))) > 0) {
+      crypto_digest_update(digest, (uint8_t *)buf, n);
       jcr->JobBytes += n;
       jcr->ReadBytes += n;
    }