diff options
-rw-r--r-- | mg2d.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -431,6 +431,9 @@ MG2DContext *mg2d_solver_alloc(size_t domain_size) goto fail; priv = ctx->priv; + if (SIZE_MAX / domain_size < domain_size) + goto fail; + priv->logger.log = log_callback; priv->logger.opaque = ctx; @@ -440,15 +443,12 @@ MG2DContext *mg2d_solver_alloc(size_t domain_size) goto fail; ret = posix_memalign((void**)&ctx->boundaries[i]->val, 32, - sizeof(*ctx->boundaries[i]->val) * ctx->domain_size); + sizeof(*ctx->boundaries[i]->val) * domain_size); if (ret != 0) goto fail; - ctx->boundaries[i]->val_len = ctx->domain_size; + ctx->boundaries[i]->val_len = domain_size; } - if (SIZE_MAX / domain_size < domain_size) - goto fail; - ret = mg_levels_alloc(ctx, domain_size); if (ret < 0) goto fail; |