On Mon, 15 Apr 2024 at 11:17, Ranier Vilela <ranier...@gmail.com> wrote: > Coverity has reported some out-of-bounds bugs > related to the GetCommandTagName function. > > The size of the array is defined by COMMAND_TAG_NEXTTAG enum, > whose value currently corresponds to 193. > Since enum items are evaluated starting at zero, by default.
I think the change makes sense. I don't see any good reason to define COMMAND_TAG_NEXTTAG or force the compiler's hand when it comes to sizing that array. Clearly, Coverity does not understand that we'll never call any of those GetCommandTag* functions with COMMAND_TAG_NEXTTAG. > Patch attached. You seem to have forgotten to attach it, but my comments above were written with the assumption that the patch is what I've attached here. David
diff --git a/src/backend/tcop/cmdtag.c b/src/backend/tcop/cmdtag.c index 68689b3e0d..0870064fdd 100644 --- a/src/backend/tcop/cmdtag.c +++ b/src/backend/tcop/cmdtag.c @@ -30,7 +30,7 @@ typedef struct CommandTagBehavior #define PG_CMDTAG(tag, name, evtrgok, rwrok, rowcnt) \ { name, (uint8) (sizeof(name) - 1), evtrgok, rwrok, rowcnt }, -static const CommandTagBehavior tag_behavior[COMMAND_TAG_NEXTTAG] = { +static const CommandTagBehavior tag_behavior[] = { #include "tcop/cmdtaglist.h" }; diff --git a/src/include/tcop/cmdtag.h b/src/include/tcop/cmdtag.h index da210e54fa..23c99d7eca 100644 --- a/src/include/tcop/cmdtag.h +++ b/src/include/tcop/cmdtag.h @@ -22,7 +22,6 @@ typedef enum CommandTag { #include "tcop/cmdtaglist.h" - COMMAND_TAG_NEXTTAG } CommandTag; #undef PG_CMDTAG