Re: svn commit: r1931082 - subversion/trunk/subversion/libsvn_subr
Timofei Zhakov <[email protected]>
| Newsgroups | gmane.comp.apache.deltacloud.devel,gmane.comp.version-control.subversion.svn |
|---|---|
| Message-ID | <CAPD1kXSJ=DyidRKzSURoe9tOs_sdBB0w-bRAWnESFtU4HzX7pw__11665.3951046587$1767485628$gmane$org@mail.gmail.com> |
On Sun, Jan 4, 2026 at 12:53 AM <[email protected]> wrote: > Author: rinrab > Date: Sat Jan 3 23:53:07 2026 > New Revision: 1931082 > > Log: > bcrypt: Initialize checksum context on demand with the first update to > properly handle all potential errors. The context is considered > uninitialized > if the handle is NULL. > > * subversion/libsvn_subr/checksum_bcrypt.c > (bcrypt_ctx_cleanup): Check the handle for NULL. In this case, ignore > cleanup entirely. > (bcrypt_ctx_update, bcrypt_ctx_final): Call initialization if the handle > is > NULL. > (bcrypt_ctx_update): Now also requires a pointer to algorithm state to > perform initialization, if needed. > (bcrypt_ctx_reset): Simply set ctx->handle to NULL. > (bcrypt_checksum): Forward algorithm to bcrypt_ctx_update. > (svn_checksum__md5_ctx_create, > svn_checksum__sha1_ctx_create): Remove initialization. > (svn_checksum__md5_ctx_update, > svn_checksum__sha1_ctx_update): Forward algorithm parameter. > > > [...] > static svn_error_t * > -bcrypt_ctx_reset(algorithm_state_t *algorithm, > - bcrypt_ctx_t *ctx) > +bcrypt_ctx_reset(algorithm_state_t *algorithm, bcrypt_ctx_t *ctx) > { > - bcrypt_ctx_cleanup(ctx); > - SVN_ERR(bcrypt_ctx_init(ctx, algorithm)); > - > + ctx->handle = NULL; > return SVN_NO_ERROR; > Oops, I see a problem. But the Subversion server seems to be down for some reason so I cannot follow up a fix yet. } > > @@ -172,7 +181,7 @@ bcrypt_checksum(algorithm_state_t *algor > > SVN_ERR(bcrypt_ctx_init(&bcrypt_ctx, algorithm)); > > - err = bcrypt_ctx_update(&bcrypt_ctx, data, len); > + err = bcrypt_ctx_update(algorithm, &bcrypt_ctx, data, len); > if (err) > { > bcrypt_ctx_cleanup(&bcrypt_ctx); > @@ -204,10 +213,6 @@ svn_checksum__md5_ctx_t * > svn_checksum__md5_ctx_create(apr_pool_t *pool) > { > svn_checksum__md5_ctx_t *ctx = apr_pcalloc(pool, sizeof(*ctx)); > - svn_error_t *err; > - > - err = bcrypt_ctx_init(&ctx->bcrypt_ctx, &md5); > - SVN_ERR_ASSERT_NO_RETURN(err == SVN_NO_ERROR); > > apr_pool_cleanup_register(pool, &ctx->bcrypt_ctx, bcrypt_ctx_cleanup, > NULL); > > @@ -225,8 +230,8 @@ svn_checksum__md5_ctx_update(svn_checksu > const void *data, > apr_size_t len) > { > - return svn_error_trace(bcrypt_ctx_update(&ctx->bcrypt_ctx, data, > - len)); > + return svn_error_trace(bcrypt_ctx_update(&md5, &ctx->bcrypt_ctx, > + data, len)); > } > > svn_error_t * > @@ -255,10 +260,6 @@ svn_checksum__sha1_ctx_t * > svn_checksum__sha1_ctx_create(apr_pool_t *pool) > { > svn_checksum__sha1_ctx_t *ctx = apr_pcalloc(pool, sizeof(*ctx)); > - svn_error_t *err; > - > - err = bcrypt_ctx_init(&ctx->bcrypt_ctx, &sha1); > - SVN_ERR_ASSERT_NO_RETURN(err == SVN_NO_ERROR); > > apr_pool_cleanup_register(pool, &ctx->bcrypt_ctx, bcrypt_ctx_cleanup, > NULL); > > @@ -276,7 +277,8 @@ svn_checksum__sha1_ctx_update(svn_checks > const void *data, > apr_size_t len) > { > - return svn_error_trace(bcrypt_ctx_update(&ctx->bcrypt_ctx, data, len)); > + return svn_error_trace(bcrypt_ctx_update(&sha1, &ctx->bcrypt_ctx, > + data, len)); > } > > svn_error_t * > > -- Timofei Zhakov