summaryrefslogtreecommitdiffstats
path: root/source4
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-12-02 09:16:53 +0000
committerAndrew Tridgell <tridge@samba.org>2003-12-02 09:16:53 +0000
commitc290906b3f238ba0246624525046b6cdda214d27 (patch)
tree3672523d264abe9ea31d8709c524395290c1da7e /source4
parentcea22e94fca1863e88895a9c51c3679085d3c108 (diff)
downloadsamba-c290906b3f238ba0246624525046b6cdda214d27.tar.gz
samba-c290906b3f238ba0246624525046b6cdda214d27.tar.xz
samba-c290906b3f238ba0246624525046b6cdda214d27.zip
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)
Diffstat (limited to 'source4')
-rw-r--r--source4/include/ntvfs.h1
-rw-r--r--source4/ntvfs/ntvfs_base.c17
2 files changed, 11 insertions, 7 deletions
diff --git a/source4/include/ntvfs.h b/source4/include/ntvfs.h
index b972a4ef995..af23f106070 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 11f39c5d593..ad1b3ae671b 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;
}