BUG #16190: The usage of NULL pointer in refint.c
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: starbugs@qq.com
Date: 2020-01-06T03:39:36Z
Lists: pgsql-bugs
The following bug has been logged on the website: Bug reference: 16190 Logged by: Jian Zhang Email address: starbugs@qq.com PostgreSQL version: 12.1 Operating system: Linux Description: We checked the code in file “refint.c” and there is one error occurring in line 636. This error is caused by the usage of pointer with NULL value. The code in this line is “newp->ident = strdup(ident);” The pointer “newp” is defined by the code in line 615 as “EPlan *newp;” and initialized by the code in line 628 as “newp = *eplan + i;” or in line 632 as “newp = *eplan = (EPlan *) malloc(sizeof(EPlan));” according to different conditions. In the first condition, the “*eplan” is valued by the code “*eplan = (EPlan *) realloc(*eplan, (i + 1) * sizeof(EPlan));” in line 627. We found the code hasn’t checked if the process “realloc” and “malloc” are success or not which directly define the value of “*eplan”. The program should check the effectiveness of the return value of function “realloc” and “malloc” to avoid this error.
Commits
-
Remove dependency to system calls for memory allocation in refint
- b0b619638668 13.0 landed