Hi, Even with null context it does not turn to ereport, and returns dummy value -
#define errsave_domain(context, domain, ...) \ do { \ struct Node *context_ = (context); \ pg_prevent_errno_in_scope(); \ if (errsave_start(context_, domain)) \ __VA_ARGS__, errsave_finish(context_, __FILE__, __LINE__, __func__); \ } while(0) #define errsave(context, ...) \ errsave_domain(context, TEXTDOMAIN, __VA_ARGS__) /* * "ereturn(context, dummy_value, ...);" is exactly the same as * "errsave(context, ...); return dummy_value;". This saves a bit * of typing in the common case where a function has no cleanup * actions to take after reporting a soft error. "dummy_value" * can be empty if the function returns void. */ #define ereturn_domain(context, dummy_value, domain, ...) \ do { \ errsave_domain(context, domain, __VA_ARGS__); \ return dummy_value; \ } while(0) #define ereturn(context, dummy_value, ...) \ ereturn_domain(context, dummy_value, TEXTDOMAIN, __VA_ARGS__) On Fri, Dec 23, 2022 at 11:40 AM Kyotaro Horiguchi <horikyota....@gmail.com> wrote: > At Fri, 23 Dec 2022 17:37:55 +0900 (JST), Kyotaro Horiguchi < > horikyota....@gmail.com> wrote in > > At Thu, 22 Dec 2022 12:35:58 -0300, Ranier Vilela <ranier...@gmail.com> > wrote in > > > Hi. > > > > > > Per Coverity. > > > > > > The commit ccff2d2 > > > < > https://github.com/postgres/postgres/commit/ccff2d20ed9622815df2a7deffce8a7b14830965 > >, > > > changed the behavior function ArrayGetNItems, > > > with the introduction of the function ArrayGetNItemsSafe. > > > > > > Now ArrayGetNItems may return -1, according to the comment. > > > " instead of throwing an exception. -1 is returned after an error." > > > > If I'm reading the code correctly, it's the definition of > > ArrayGetNItems*Safe*. ArrayGetNItems() calls that function with a NULL > > escontext and the NULL turns ereturn() into ereport(). > > > That doesn't seem to be changed by the commit. > > No.. It seems to me that the commit didn't change its behavior in that > regard. > > > Of course teaching Coverity not to issue the false warnings would be > > another actual issue that we should do, maybe. > > -- > Kyotaro Horiguchi > NTT Open Source Software Center > > > -- Regards, Nikita Malakhov Postgres Professional https://postgrespro.ru/