ecpg: fix some minor mishandling of bad input in preprocessor.
Tom Lane <tgl@sss.pgh.pa.us>
ecpg: fix some minor mishandling of bad input in preprocessor. Avoid null-pointer crash when considering a cursor declaration that's outside any C function (a case which is useless anyway). Ensure a cursor for a prepared statement is marked as initially not open. At worst, if we chanced to get not-already-zeroed memory from malloc(), this oversight would result in failing to issue a "cursor "foo" has been declared but not opened" warning that would have been appropriate. Avoid running off the end of the buffer when there are mismatched square brackets following a variable name. This could lead to SIGSEGV after reaching the end of memory. Given the lack of field complaints, none of these seem to be worth back-patching, but let's clean them up in HEAD. Per valgrind testing by Alexander Lakhin. Discussion: https://postgr.es/m/5f5bcecd-d7ec-b8c0-6c92-d1a7c6e0f639@gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/interfaces/ecpg/preproc/ecpg.header | modified | +2 −1 |
| src/interfaces/ecpg/preproc/ecpg.trailer | modified | +1 −0 |
| src/interfaces/ecpg/preproc/variable.c | modified | +3 −0 |
Discussion
- ECPG cleanup and fix for clang compile-time problem 25 messages · 2024-04-19 → 2024-11-27