BUG #16186: The usage of undefined value in pgbench.c

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #16186: The usage of undefined value in pgbench.c
Дата
Msg-id 16186-4b696aec8b8c1e82@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #16186: The usage of undefined value in pgbench.c  (Fabien COELHO <coelho@cri.ensmp.fr>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16186
Logged by:          Jian Zhang
Email address:      starbugs@qq.com
PostgreSQL version: 12.1
Operating system:   Linux
Description:

We checked the code in file “pgbench.c” and there are three errors occurring
in lines 1900, 2100 and 2357 in function evalStandardFunc. All the three
errors are caused by the usage of variables with undefined values. Firstly,
in line 1900, the code is “if ((lval->type == PGBT_DOUBLE || rval->type ==
PGBT_DOUBLE) && func != PGBENCH_MOD)”. The pointer “lval” mentioned in this
line is defined by the code in line 1894 as “PgBenchValue *lval = &vargs[0],
*rval = &vargs[1];”, so it is assigned as the address of “vargs[0]”.
Secondly, in line 2100, the code is “if (varg->type == PGBT_INT)”.    The
pointer “varg” mentioned in this line is defined by the code in line 2096:
“PgBenchValue *varg = &vargs[0];”, so it is also assigned as the address of
“vargs[0]”. Lastly, in line 2357, the code is “vargs[0].type ==
vargs[1].type &&vargs[0].u.bval == vargs[1].u.bval);”. The 1st  and 2nd
elements of array “vargs” is directly used without confirming weather the
array is correctly defined or not. The array “vargs” is defined by the code
“PgBenchValue vargs[MAX_FARGS];” in line 1855 and is initialized in the
function of “evaluateExpr” in line 1861, the code is “if (!evaluateExpr(st,
l->expr, &vargs[nargs]))”. So the assignment of array “vargs” depends on
both the input pointer “st” and the pointer “I” defined by the input
parameter “args”. All the input parameters of function “evalStandardFunc”
are listed in line 1849. The code is “evalStandardFunc(CState *st,
PgBenchFunction func, PgBenchExprLink *args, PgBenchValue *retval)”. The
program should check the effectiveness of input parameters “st” and “args”
to avoid these three errors.


В списке pgsql-bugs по дате отправления:

Предыдущее
От: Ryan Lambert
Дата:
Сообщение: Re: BUG #16183: PREPARED STATEMENT slowed down by jit
Следующее
От: PG Bug reporting form
Дата:
Сообщение: BUG #16187: The usage of undefined value in parallel.c