Skip to content

Commit d604035

Browse files
author
Commitfest Bot
committed
[CF 7292] v1 - [PATCH v1] Reject zero resource kinds in test_resowner_many()
This branch was automatically generated by a robot using patches from an email thread registered at: https://commitfest.postgresql.org/patch/7292 The branch will be overwritten each time a new patch version is posted to the thread, and also periodically to check for bitrot caused by changes on the master branch. Patch(es): https://www.postgresql.org/message-id/1905e9d709554733b418d06a4806436f@localhost.localdomain Author(s): Yuriy Grigoryev
2 parents 9e17d25 + b6a1b6b commit d604035

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

src/test/modules/test_resowner/expected/test_resowner.out

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ NOTICE: releasing string: my string
188188

189189
(1 row)
190190

191+
-- There must be at least one resource kind.
192+
SELECT test_resowner_many(0, 1, 0, 0, 0);
193+
ERROR: nkinds must be greater than zero
194+
SELECT test_resowner_many(0, 0, 0, 1, 0);
195+
ERROR: nkinds must be greater than zero
191196
-- Negative tests, using a resource owner after release-phase has started.
192197
set client_min_messages='warning'; -- order between ERROR and NOTICE varies
193198
SELECT test_resowner_remember_between_phases();

src/test/modules/test_resowner/sql/test_resowner.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ SELECT test_resowner_many(
1818
-- Test resource leak warning
1919
SELECT test_resowner_leak();
2020

21+
-- There must be at least one resource kind.
22+
SELECT test_resowner_many(0, 1, 0, 0, 0);
23+
SELECT test_resowner_many(0, 0, 0, 1, 0);
24+
2125
-- Negative tests, using a resource owner after release-phase has started.
2226
set client_min_messages='warning'; -- order between ERROR and NOTICE varies
2327
SELECT test_resowner_remember_between_phases();

src/test/modules/test_resowner/test_resowner_many.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ RememberManyTestResources(ResourceOwner owner,
118118
{
119119
int kind_idx = 0;
120120

121+
Assert(nkinds > 0);
122+
121123
for (int i = 0; i < nresources; i++)
122124
{
123125
ManyTestResource *mres = palloc_object(ManyTestResource);
@@ -213,8 +215,8 @@ test_resowner_many(PG_FUNCTION_ARGS)
213215
ManyTestResourceKind *after_kinds;
214216

215217
/* Sanity check the arguments */
216-
if (nkinds < 0)
217-
elog(ERROR, "nkinds must be >= 0");
218+
if (nkinds <= 0)
219+
elog(ERROR, "nkinds must be greater than zero");
218220
if (nremember_bl < 0)
219221
elog(ERROR, "nremember_bl must be >= 0");
220222
if (nforget_bl < 0 || nforget_bl > nremember_bl)

0 commit comments

Comments
 (0)