git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: Patrick Steinhardt <ps@pks.im>,  Jeff King <peff@peff.net>
Subject: Re: [PATCH 0/9] commit-reach: -Wsign-compare follow-ups
Date: Fri, 27 Dec 2024 12:08:03 -0800	[thread overview]
Message-ID: <xmqq7c7kubx8.fsf@gitster.g> (raw)
In-Reply-To: <xmqqbjwwucvy.fsf@gitster.g> (Junio C. Hamano's message of "Fri, 27 Dec 2024 11:47:13 -0800")

Junio C Hamano <gitster@pobox.com> writes:

> Error: shallow.c:537:32: comparison of integer expressions of different signedness:
> 'unsigned int' and 'int' [-Werror=sign-compare]
>
>     537 |  if (!info->pool_count || size > info->end - info->free) {
>
> I didn't dig deeper than this.

What we want to express seems to be:

    If the region between "end" and "free" is smaller than the
    required "size" then we are in trouble.

which can be said more naturally with

    If the region of size "size" starting at "free" pointer overruns the
    "end" pointer, we are in trouble.

So perhaps something like this would help?  We are no longer making
a comparison between two integers with this rewrite.

 shallow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git c/shallow.c w/shallow.c
index b8fcfbef0f..b54244ffa9 100644
--- c/shallow.c
+++ w/shallow.c
@@ -534,7 +534,7 @@ static uint32_t *paint_alloc(struct paint_info *info)
 	unsigned nr = DIV_ROUND_UP(info->nr_bits, 32);
 	unsigned size = nr * sizeof(uint32_t);
 	void *p;
-	if (!info->pool_count || size > info->end - info->free) {
+	if (!info->pool_count || info->end < info->free + size) {
 		if (size > POOL_SIZE)
 			BUG("pool size too small for %d in paint_alloc()",
 			    size);

  reply	other threads:[~2024-12-27 20:08 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-27 10:46 [PATCH 0/9] commit-reach: -Wsign-compare follow-ups Patrick Steinhardt
2024-12-27 10:46 ` [PATCH 1/9] prio-queue: fix type of `insertion_ctr` Patrick Steinhardt
2024-12-27 14:36   ` Jeff King
2024-12-27 10:46 ` [PATCH 2/9] commit-reach: fix index used to loop through unsigned integer Patrick Steinhardt
2024-12-27 14:46   ` Jeff King
2024-12-27 10:46 ` [PATCH 3/9] commit-reach: fix type of `min_commit_date` Patrick Steinhardt
2024-12-27 10:46 ` [PATCH 4/9] commit-reach: use `size_t` to track indices in `remove_redundant()` Patrick Steinhardt
2025-01-03  1:46   ` Justin Tobler
2024-12-27 10:46 ` [PATCH 5/9] commit-reach: use `size_t` to track indices in `get_reachable_subset()` Patrick Steinhardt
2024-12-27 10:46 ` [PATCH 6/9] builtin/log: use `size_t` to track indices Patrick Steinhardt
2025-01-03  1:58   ` Justin Tobler
2025-01-03  6:43     ` Patrick Steinhardt
2024-12-27 10:46 ` [PATCH 7/9] builtin/log: fix remaining -Wsign-compare warnings Patrick Steinhardt
2024-12-27 13:21   ` shejialuo
2024-12-27 13:57     ` Patrick Steinhardt
2024-12-27 14:03       ` shejialuo
2024-12-27 10:46 ` [PATCH 8/9] shallow: fix " Patrick Steinhardt
2024-12-27 10:46 ` [PATCH 9/9] commit-reach: use `size_t` to track indices when computing merge bases Patrick Steinhardt
2025-01-03  2:08   ` Justin Tobler
2025-01-03  6:43     ` Patrick Steinhardt
2024-12-27 19:47 ` [PATCH 0/9] commit-reach: -Wsign-compare follow-ups Junio C Hamano
2024-12-27 20:08   ` Junio C Hamano [this message]
2024-12-27 21:37     ` Jeff King
2024-12-28  8:41       ` Patrick Steinhardt
2024-12-28  0:00     ` Junio C Hamano
2024-12-28  8:27       ` Patrick Steinhardt
2024-12-28 15:38         ` Junio C Hamano
2024-12-28 19:05         ` racy leak sanitizer builds, was " Jeff King
2024-12-28 19:23           ` Jeff King
2024-12-28 19:31             ` Jeff King
2024-12-29 12:02             ` René Scharfe
2024-12-29 16:57               ` Jeff King
2024-12-30  4:32                 ` Jeff King
2024-12-30 13:46                 ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq7c7kubx8.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=ps@pks.im \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).