From: Andreas Schwab <schwab@linux-m68k.org>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: git@vger.kernel.org, gitster@pobox.com,
phillip.wood123@gmail.com, ps@pks.im,
"Sören Krecker" <soekkle@freenet.de>
Subject: Re: [PATCHv2 2/4] date.c: Fix type missmatch warings from msvc
Date: Mon, 06 Jan 2025 23:53:21 +0100 [thread overview]
Message-ID: <87sepvpna6.fsf@igel.home> (raw)
In-Reply-To: <CAPig+cR0GgZQ+XCyAh=xHRfjfsAdTzC2uyML1vnoM_fXv1Bxew@mail.gmail.com> (Eric Sunshine's message of "Mon, 6 Jan 2025 17:22:06 -0500")
On Jan 06 2025, Eric Sunshine wrote:
> On Mon, Jan 6, 2025 at 2:14 PM Sören Krecker <soekkle@freenet.de> wrote:
>> Fix compiler warings from msvc in date.c for value truncation from 64
>> bit to 32 bit integers.
>
> s/warings/warnings/
>
>> Also switch from int to size_t for all variables with result of strlen()
>> which cannot become negative.
>>
>> Signed-off-by: Sören Krecker <soekkle@freenet.de>
>> ---
>> diff --git a/date.c b/date.c
>> @@ -1270,7 +1270,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
>> tl = typelen;
>> while (tl->type) {
>> - int len = strlen(tl->type);
>> + size_t len = strlen(tl->type);
>> if (match_string(date, tl->type) >= len-1) {
>
> This change looks scary and potentially wrong considering that the
> expression in the `if` statement subtracts 1 from `len`. If `len`
> happens to be zero, then `len-1` will wrap around to a very large
> number, thus potentially changing the meaning of the `if` condition.
>
> Now, admittedly, I haven't delved into this code or thought about it
> much, so I may be entirely wrong about this; perhaps it is impossible
> for `len` to ever be zero in this context or perhaps the meaning of
> the `if` condition doesn't change even if it wraps around.
It can be made more robust by moving the constant to the other side:
if (match_string(date, tl->type)+1 >= len) {
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
next prev parent reply other threads:[~2025-01-06 23:03 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 19:08 [PATCHv2 0/4] Fixes typemissmatch warinigs from msvc Sören Krecker
2025-01-06 19:08 ` [PATCHv2 1/4] add-patch: Fix type missmatch rom msvc Sören Krecker
2025-01-07 0:13 ` brian m. carlson
2025-01-07 0:26 ` Junio C Hamano
2025-01-07 0:53 ` Junio C Hamano
2025-01-06 19:08 ` [PATCHv2 2/4] date.c: Fix type missmatch warings from msvc Sören Krecker
2025-01-06 22:22 ` Eric Sunshine
2025-01-06 22:53 ` Andreas Schwab [this message]
2025-01-06 19:08 ` [PATCHv2 3/4] apply.c : " Sören Krecker
2025-01-06 22:26 ` Eric Sunshine
2025-01-06 19:08 ` [PATCHv2 4/4] commit.c: " Sören Krecker
2025-01-06 22:27 ` Eric Sunshine
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=87sepvpna6.fsf@igel.home \
--to=schwab@linux-m68k.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood123@gmail.com \
--cc=ps@pks.im \
--cc=soekkle@freenet.de \
--cc=sunshine@sunshineco.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.