Sun, 01 Jun 2025 22:08:35 +0200
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);