From c290906b3f238ba0246624525046b6cdda214d27 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 2 Dec 2003 09:16:53 +0000 Subject: make sure we can expand the critical versions structure without causing crashes in old modules. Thanks to metze for pointing this out! (This used to be commit 2ee5540629e7922cd76d87ed53b70bf37b83e100) --- source4/include/ntvfs.h | 1 + source4/ntvfs/ntvfs_base.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/source4/include/ntvfs.h b/source4/include/ntvfs.h index b972a4ef99..af23f10607 100644 --- a/source4/include/ntvfs.h +++ b/source4/include/ntvfs.h @@ -82,6 +82,7 @@ struct ntvfs_ops { /* this structure is used by backends to determine the size of some critical types */ struct ntvfs_critical_sizes { + int interface_version; int sizeof_ntvfs_ops; int sizeof_SMB_OFF_T; int sizeof_tcon_context; diff --git a/source4/ntvfs/ntvfs_base.c b/source4/ntvfs/ntvfs_base.c index 11f39c5d59..ad1b3ae671 100644 --- a/source4/ntvfs/ntvfs_base.c +++ b/source4/ntvfs/ntvfs_base.c @@ -88,14 +88,17 @@ struct ntvfs_ops *ntvfs_backend_byname(const char *name, enum ntvfs_type type) This can be used by backends to either detect compilation errors, or provide multiple implementations for different smbd compilation options in one module */ -int ntvfs_interface_version(struct ntvfs_critical_sizes *sizes) +const struct ntvfs_critical_sizes *ntvfs_interface_version(void) { - sizes->sizeof_ntvfs_ops = sizeof(struct ntvfs_ops); - sizes->sizeof_SMB_OFF_T = sizeof(SMB_OFF_T); - sizes->sizeof_tcon_context = sizeof(struct tcon_context); - sizes->sizeof_request_context = sizeof(struct request_context); - - return NTVFS_INTERFACE_VERSION; + static const struct ntvfs_critical_sizes critical_sizes = { + NTVFS_INTERFACE_VERSION, + sizeof(struct ntvfs_ops), + sizeof(SMB_OFF_T), + sizeof(struct tcon_context), + sizeof(struct request_context), + }; + + return &critical_sizes; } -- cgit