merge

Sun, 01 Jun 2025 22:08:35 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 01 Jun 2025 22:08:35 +0200
changeset 874
8f0add189b2f
parent 873
96aade0d6246 (current diff)
parent 872
d24de29ad1fe (diff)
child 875
3b9ac2dd757d

merge

libidav/crypto.c file | annotate | diff | comparison | revisions
--- a/dav/finfo.c	Sun Jun 01 22:07:06 2025 +0200
+++ b/dav/finfo.c	Sun Jun 01 22:08:35 2025 +0200
@@ -263,7 +263,7 @@
     xattr->nattr = nattr;
     
     unsigned char hash[DAV_SHA256_DIGEST_LENGTH];
-    dav_sha256_final(sha256, hash);
+    dav_sha256_final_free(sha256, hash);
     xattr->hash = util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH);
     
     free(attributes);
--- a/dav/sync.c	Sun Jun 01 22:07:06 2025 +0200
+++ b/dav/sync.c	Sun Jun 01 22:08:35 2025 +0200
@@ -4280,7 +4280,7 @@
     
     // set content-hash
     unsigned char content_hash[DAV_SHA256_DIGEST_LENGTH];
-    dav_sha256_final(sha, content_hash);
+    dav_sha256_final_free(sha, content_hash);
     sync_set_content_hash(res, content_hash);
     local->hash = util_hexstr(content_hash, DAV_SHA256_DIGEST_LENGTH);
     
--- a/dav/tags.c	Sun Jun 01 22:07:06 2025 +0200
+++ b/dav/tags.c	Sun Jun 01 22:08:35 2025 +0200
@@ -289,7 +289,7 @@
 
 CxList* parse_macos_taglist(const char *buf, size_t length) {
     CxList *taglist = cxLinkedListCreateSimple(CX_STORE_POINTERS);
-    taglist->simple_destructor = (cx_destructor_func)free_dav_tag;
+    taglist->collection.simple_destructor = (cx_destructor_func)free_dav_tag;
     
     CFDataRef data = CFDataCreateWithBytesNoCopy(
             kCFAllocatorDefault,
@@ -320,7 +320,7 @@
 }
 
 CxBuffer* create_macos_taglist(CxList *tags) {
-    size_t count = tags->size;
+    size_t count = cxListSize(tags);
     if(count == 0) {
         return NULL;
     }
--- a/libidav/crypto.c	Sun Jun 01 22:07:06 2025 +0200
+++ b/libidav/crypto.c	Sun Jun 01 22:08:35 2025 +0200
@@ -848,13 +848,16 @@
     return ctx;
 }
 
+void dav_sha256_init(DAV_SHA_CTX *ctx) {
+    CC_SHA256_Init(ctx);
+}
+
 void dav_sha256_update(DAV_SHA_CTX *ctx, const char *data, size_t len) {
     CC_SHA256_Update(ctx, data, len);
 }
 
 void dav_sha256_final(DAV_SHA_CTX *ctx, unsigned char *buf) {
     CC_SHA256_Final(buf, ctx);
-    free(ctx);
 }
 
 DavKey* dav_pw2key(const char *password, const unsigned char *salt, int saltlen, int pwfunc, int enc) {
@@ -1422,7 +1425,7 @@
     DAV_SHA_CTX *ctx = dav_sha256_create();
     if(ctx) {
         dav_sha256_update(ctx, data, len);
-        dav_sha256_final(ctx, hash);
+        dav_sha256_final_free(ctx, hash);
     }
     return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH);
 }
@@ -1448,7 +1451,6 @@
     
     // cleanup
     cng_cleanup(ctx->hAlg, NULL, ctx->hHash, ctx->pbHashObject);
-    free(ctx);
 }
 
 DavKey* dav_pw2key(const char *password, const unsigned char *salt, int saltlen, int pwfunc, int enc) {
@@ -1514,7 +1516,10 @@
 }
 #endif
 
-
+void dav_sha256_final_free(DAV_SHA_CTX *ctx, unsigned char *buf) {
+    dav_sha256_final(ctx, buf);
+    free(ctx);
+}
 
 CxBuffer* aes_encrypt_buffer(CxBuffer *in, DavKey *key) {
     CxBuffer *encbuf = cxBufferCreate(NULL, in->size, cxDefaultAllocator, CX_BUFFER_FREE_CONTENTS|CX_BUFFER_AUTO_EXTEND);
--- a/libidav/crypto.h	Sun Jun 01 22:07:06 2025 +0200
+++ b/libidav/crypto.h	Sun Jun 01 22:08:35 2025 +0200
@@ -159,6 +159,7 @@
 DAV_SHA_CTX* dav_sha256_create(void);
 void dav_sha256_update(DAV_SHA_CTX *ctx, const char *data, size_t len);
 void dav_sha256_final(DAV_SHA_CTX *ctx, unsigned char *buf);
+void dav_sha256_final_free(DAV_SHA_CTX *ctx, unsigned char *buf);
 
 DavKey* dav_pw2key(const char *password, const unsigned char *salt, int saltlen, int pwfunc, int enc);
 
--- a/libidav/resource.c	Sun Jun 01 22:07:06 2025 +0200
+++ b/libidav/resource.c	Sun Jun 01 22:08:35 2025 +0200
@@ -835,7 +835,7 @@
     HashStream *s = stream;
     if(offset == 0 && whence == SEEK_SET) {
         unsigned char buf[DAV_SHA256_DIGEST_LENGTH];
-        dav_sha256_final(s->sha, buf);
+        dav_sha256_final_free(s->sha, buf);
         s->sha = NULL;
     } else {
         s->error = 1;
@@ -938,7 +938,7 @@
                     data->length);
             
             if(hstr.sha) {
-                dav_sha256_final(hstr.sha, (unsigned char*)data->hash);
+                dav_sha256_final_free(hstr.sha, (unsigned char*)data->hash);
                 char *hash = util_hexstr((unsigned char*)data->hash, 32);
                 dav_set_string_property_ns(res, DAV_NS, "content-hash", hash);
                 free(hash);

mercurial