Loading src/tool_metalink.c +24 −3 Original line number Diff line number Diff line Loading @@ -539,6 +539,7 @@ digest_context *Curl_digest_init(const digest_params *dparams) ctxt->digest_hash = dparams; if(dparams->digest_init(ctxt->digest_hashctx) != 1) { free(ctxt->digest_hashctx); free(ctxt); return NULL; } Loading @@ -557,6 +558,7 @@ int Curl_digest_update(digest_context *context, int Curl_digest_final(digest_context *context, unsigned char *result) { if(result) (*context->digest_hash->digest_final)(result, context->digest_hashctx); free(context->digest_hashctx); Loading Loading @@ -622,6 +624,7 @@ static int check_hash(const char *filename, result = malloc(digest_def->dparams->digest_resultlen); if(!result) { close(fd); Curl_digest_final(dctx, NULL); return -1; } while(1) { Loading Loading @@ -690,6 +693,8 @@ static metalink_checksum *new_metalink_checksum_from_hex_digest chksum->digest_def = digest_def; chksum->digest = digest; } else free(digest); return chksum; } Loading Loading @@ -781,9 +786,25 @@ static metalinkfile *new_metalinkfile(metalink_file_t *fileinfo) curl_strequal((*p)->type, "ftp") || curl_strequal((*p)->type, "ftps")) { res = new_metalink_resource((*p)->url); if(res) { tail->next = res; tail = res; } else { tail = root.next; /* clean up the linked list */ while(tail) { res = tail->next; free(tail->url); free(tail); tail = res; } free(f->filename); free(f); return NULL; } } } f->resource = root.next; } Loading Loading
src/tool_metalink.c +24 −3 Original line number Diff line number Diff line Loading @@ -539,6 +539,7 @@ digest_context *Curl_digest_init(const digest_params *dparams) ctxt->digest_hash = dparams; if(dparams->digest_init(ctxt->digest_hashctx) != 1) { free(ctxt->digest_hashctx); free(ctxt); return NULL; } Loading @@ -557,6 +558,7 @@ int Curl_digest_update(digest_context *context, int Curl_digest_final(digest_context *context, unsigned char *result) { if(result) (*context->digest_hash->digest_final)(result, context->digest_hashctx); free(context->digest_hashctx); Loading Loading @@ -622,6 +624,7 @@ static int check_hash(const char *filename, result = malloc(digest_def->dparams->digest_resultlen); if(!result) { close(fd); Curl_digest_final(dctx, NULL); return -1; } while(1) { Loading Loading @@ -690,6 +693,8 @@ static metalink_checksum *new_metalink_checksum_from_hex_digest chksum->digest_def = digest_def; chksum->digest = digest; } else free(digest); return chksum; } Loading Loading @@ -781,9 +786,25 @@ static metalinkfile *new_metalinkfile(metalink_file_t *fileinfo) curl_strequal((*p)->type, "ftp") || curl_strequal((*p)->type, "ftps")) { res = new_metalink_resource((*p)->url); if(res) { tail->next = res; tail = res; } else { tail = root.next; /* clean up the linked list */ while(tail) { res = tail->next; free(tail->url); free(tail); tail = res; } free(f->filename); free(f); return NULL; } } } f->resource = root.next; } Loading