[PATCH] Fix expressions always false

Started by Ranier Vilelaover 6 years ago3 messageshackers
Jump to latest
#1Ranier Vilela
ranier.vf@gmail.com

More about expressions always false.
1. /src/backend/executor/execExprInterp.c
ndims <= 0 neve be negative, because ndims aways is added up +1
2. src/backend/utils/adt/formatting.c
result is declared long. Comparison with int limits is always false.
3. src/backend/utils/adt/jsonfuncs.c
lindex is declared long. . Comparison with int limits is always false.
4. src/backend/utils/adt/network.c
ip_addrsize is macro and awlays return 4 or 16

regards,
Ranier Vilela

Attachments:

always_false_v1.patchtext/x-patch; charset=US-ASCII; name=always_false_v1.patchDownload+8-10
In reply to: Ranier Vilela (#1)
Re: [PATCH] Fix expressions always false

Ranier Vilela <ranier.vf@gmail.com> writes:

More about expressions always false.
2. src/backend/utils/adt/formatting.c
result is declared long. Comparison with int limits is always false.
3. src/backend/utils/adt/jsonfuncs.c
lindex is declared long. . Comparison with int limits is always false.

1) long is 64 bits on Unix-like platforms
2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
3) it's being cast to an int for the from_char_set_int() call below

Please take your time to read the whole context of the code you're
changing, and consider other platforms than just Windows.

- ilmari
--
"A disappointingly low fraction of the human race is,
at any given time, on fire." - Stig Sandbeck Mathisen

#3Ranier Vilela
ranier.vf@gmail.com
In reply to: Dagfinn Ilmari Mannsåker (#2)
Re: [PATCH] Fix expressions always false

1) long is 64 bits on Unix-like platforms
2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
3) it's being cast to an int for the from_char_set_int() call below
Please take your time to read the whole context of the code you're
changing, and consider other platforms than just Windows.

Thank you for point me, about this.

regards,
Ranier Vilela

Em qui., 19 de dez. de 2019 às 20:58, Dagfinn Ilmari Mannsåker <
ilmari@ilmari.org> escreveu:

Show quoted text

Ranier Vilela <ranier.vf@gmail.com> writes:

More about expressions always false.
2. src/backend/utils/adt/formatting.c
result is declared long. Comparison with int limits is always false.
3. src/backend/utils/adt/jsonfuncs.c
lindex is declared long. . Comparison with int limits is always false.

1) long is 64 bits on Unix-like platforms
2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
3) it's being cast to an int for the from_char_set_int() call below

Please take your time to read the whole context of the code you're
changing, and consider other platforms than just Windows.

- ilmari
--
"A disappointingly low fraction of the human race is,
at any given time, on fire." - Stig Sandbeck Mathisen

Attachments:

always_false_v2.patchtext/x-patch; charset=US-ASCII; name=always_false_v2.patchDownload+1-3