Introduce macro for common plugin structure elements

Heimdal's HDB plugin interface, and hence Samba's KDC that depends upon
it, doesn't work on 32-bit builds due to structure fields being arranged
in the wrong order. This problem presents itself in the form of
segmentation faults on 32-bit systems, but goes unnoticed on 64-bit
builds thanks to extra structure padding absorbing the errant fields.

This commit reorders the HDB plugin structure fields to prevent crashes
and introduces a common macro to ensure every plugin presents a
consistent interface.

Samba BUG: https://bugzilla.samba.org/show_bug.cgi?id=15110

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
This commit is contained in:
Joseph Sutton
2022-10-22 10:11:53 +13:00
committed by Nico Williams
parent 16179383fb
commit cfb32a638e
17 changed files with 57 additions and 63 deletions

View File

@@ -243,17 +243,17 @@ struct hdb_method hdb_test =
#ifdef WIN32
/* Not c99 */
HDB_INTERFACE_VERSION,
1 /*is_file_based*/, 1 /*can_taste*/,
hdb_test_init,
hdb_test_fini,
1 /*is_file_based*/, 1 /*can_taste*/,
"test",
hdb_test_create
#else
.version = HDB_INTERFACE_VERSION,
.is_file_based = 1,
.can_taste = 1,
.minor_version = HDB_INTERFACE_VERSION,
.init = hdb_test_init,
.fini = hdb_test_fini,
.is_file_based = 1,
.can_taste = 1,
.prefix = "test",
.create = hdb_test_create
#endif