Fix illegal memory access on table that should have been synced with ydb_types enum. The offending table is default_pre_alloc_value

Final Release Note

Description

  • The default_pre_alloc_value table should have been sync'ed with ydb_types enum in sr_unix/fgncalsp.c but the source only warned about the parm_space_needed table.
  • This error was further exacerbated by !1453 (merged) on 32-bit machines, which is how it got caught by a 32-bit xcall/basic test.
  • A static_assert should be added to both of the relevant tables to catch that they are out of sync at compile-time.

Draft Release Note

  • Bugfix: In an external call-out table, specifying the default preallocation size for ydb_buffer_t resulted in an illegal memory access. For example, the issue can be reproduced by call-out table line func: void func(O:ydb_buffer_t*[]). This error is very unlikely to occur since the default buffer size is only 1 character and thus most users would not use it.
Edited by Berwyn Hoyt