Found a bug in quake 3; maxGameClients spawning infinite spectator bots

I came across a bug in the original source for Quake 3, and it looks like it still exists in ioq3 as well. It’s kind of an odd case, so I don’t want to make a fix in github; maybe this isn’t as much of an issue as I thought; maybe I’m just using these variables in the wrong way.

Because of certain things within a mod I am building, instead of setting my server’s sv_maxclients to 8, I set it to 18 and as set gMaxGameClients to 8. (My mod is doing stuff with spectators and I needed room for more spectators.)
And I found this odd bug that can be replicated outside my mod. If the bot_minplayers is also set to 8, the game keeps adding bots to reach 9 active players, but when the 8th player is spawned, they are immediately kicked into being a spectator. And then the game will continue spawning more and more bots, trying to reach the minplayers, but each new bot is kicked itno being a spectator, until eventually the maxclients gets full.

This can be traced to g_cmds.c where it seems to be using a “greater than or equal to” evaluation to see if there are too many players, and thus kicking them into spectator, instead of allowing the last bot to remain.

// override decision if limiting the players
if ( (g_gametype.integer == GT_TOURNAMENT)
&& level.numNonSpectatorClients >= 2 ) {
team = TEAM_SPECTATOR;
} else if ( g_maxGameClients.integer > 0 &&
level.numNonSpectatorClients >= g_maxGameClients.integer ) {
team = TEAM_SPECTATOR;
}

Or am I reading this wrong? Did no one ever catch this before because no one was using maxGameClients, or is this actually “working as intended” because I’m the one using g_maxGameClients weird?