On Mon, Jun 21, 2021 at 11:26 PM <[email protected]> wrote:
>
> Author: minfrin
> Date: Mon Jun 21 21:26:54 2021
> New Revision: 1890952
[]
>
> +APR_DECLARE(apr_status_t) apr_dbm_get_driver(const apr_dbm_driver_t **vtable,
> + const char *type, const apu_err_t **result, apr_pool_t *pool)
> {
[]
> +
> + if (result && !*result) {
> + char *buffer = apr_pcalloc(pool, ERROR_SIZE);
Maybe use :
apr_status_t rv = APR_ENOTIMPL;
char *buffer = apr_psprintf(pool, "%pm", &rv);
to avoid arbitrary ERROR_SIZE allocation?
> + apu_err_t *err = apr_pcalloc(pool, sizeof(apu_err_t));
> + if (err && buffer) {
> + apr_strerror(APR_ENOTIMPL, buffer, ERROR_SIZE - 1);
> + err->msg = buffer;
> + err->reason = apr_pstrdup(pool, type);
> + *result = err;
> + }
> + }
> +
> return APR_ENOTIMPL;
>
> #else /* APR_HAVE_MODULAR_DSO */
>
[]
> +
> + if (APR_SUCCESS != rv && result && !*result) {
> + char *buffer = apr_pcalloc(pool, ERROR_SIZE);
Same here.
> + apu_err_t *err = apr_pcalloc(pool, sizeof(apu_err_t));
> + if (err && buffer) {
> + apr_dso_error(dso, buffer, ERROR_SIZE - 1);
> + err->msg = buffer;
> + err->reason = apr_pstrdup(pool, modname);
> + *result = err;
> + }
> + }
> +
> return rv;
Regards;
Yann.