]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: quota_free_bytes - Check we don't decrease more than INT64_MAX
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 20 Aug 2020 13:24:41 +0000 (16:24 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 11 Sep 2020 07:07:20 +0000 (07:07 +0000)
Otherwise we get overflow

src/plugins/quota/quota.c

index ee9debc4075b89c2aad422ee8cf8565cdc614493..1457ffe654cb52f371a054f8acbe90421de096c0 100644 (file)
@@ -1460,7 +1460,8 @@ void quota_alloc(struct quota_transaction_context *ctx, struct mail *mail)
 void quota_free_bytes(struct quota_transaction_context *ctx,
                      uoff_t physical_size)
 {
-       ctx->bytes_used -= physical_size;
+       i_assert(physical_size <= INT64_MAX);
+       ctx->bytes_used -= (int64_t)physical_size;
        ctx->count_used--;
 }