Skip to content

Serverinfo string overflow #30

@ThomasBrierley

Description

@ThomasBrierley

This is a strange one, had me scratching my head for a while.

If sv_hostname is longer than 25 chars (including hidden colour code chars) the game type is forced to FFA. Note that the server will still advertise whatever g_gametype was set to and rcon g_gametype will still return whatever it was set to while running, yet the actual game mode used will be FFA.

This behaviour doesn't seem to occur with Barbatos's repo.

set  sv_hostname "12345678901234567890123456" // 26 char name

[edit]

Thanks for everyones invaluable input on this. Rough plan from discussion bellow:

  • Shorten version cvar (specifically git rev) to reduce chance of hitting limit (Pointed out by Karnute).
  • Ommit cvars with default values (Default server.cfg causes all defaults to be sent unecessarily).
  • Reorder cvars to ensure functionally important ones appear at the start (Suggested by Kronik).
  • Determine superficial cvars and truncate their values when limit exceeded in order of importance.
  • Add 2nd serverinfo string containing untruncated cvars (without interfering with strict q3 protocol).

Exclude truncation based option since reviewing content of infostring (almost all cvars are not strings).
Exluded omitting cvars option because the optional ones are mostly auth cvars.
Kronik has detailed relevant functions here #30 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions