diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2024-10-28 14:07:38 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2024-10-28 14:07:38 +0200 |
commit | de5afddc3ba4aa41f341f62347ce40bb9ea9d78b (patch) | |
tree | 92f12437f89475dad83564b192c9b71ebd4d11b8 | |
parent | 22bb889f7080d5a2596df2276ccbdb1ace1e4673 (diff) | |
download | postgresql-de5afddc3ba4aa41f341f62347ce40bb9ea9d78b.tar.gz postgresql-de5afddc3ba4aa41f341f62347ce40bb9ea9d78b.zip |
Fix overflow in bsearch_arg() with more than INT_MAX elements
This was introduced in commit bfa2cee784, which replaced the old
bsearch_cmp() function we had in extended_stats.c with the current
implementation. The original discussion or commit message of
bfa2cee784 didn't mention where the new implementation came from, but
based on some googling, I'm guessing *BSD or libiberty, all of which
share this same code, with or without this fix.
Author: Ranier Vilela
Reviewed-by: Nathan Bossart
Backpatch-through: 14
Discussion: https://www.postgresql.org/message-id/CAEudQAp34o_8u6sGSVraLwuMv9F7T9hyHpePXHmRaxR2Aboi%2Bw%40mail.gmail.com
-rw-r--r-- | src/port/bsearch_arg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/port/bsearch_arg.c b/src/port/bsearch_arg.c index f0de467beee..e0446a9f075 100644 --- a/src/port/bsearch_arg.c +++ b/src/port/bsearch_arg.c @@ -58,8 +58,8 @@ bsearch_arg(const void *key, const void *base0, void *arg) { const char *base = (const char *) base0; - int lim, - cmp; + size_t lim; + int cmp; const void *p; for (lim = nmemb; lim != 0; lim >>= 1) |