diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-12-02 09:16:53 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-12-02 09:16:53 +0000 |
commit | c290906b3f238ba0246624525046b6cdda214d27 (patch) | |
tree | 3672523d264abe9ea31d8709c524395290c1da7e /source4 | |
parent | cea22e94fca1863e88895a9c51c3679085d3c108 (diff) | |
download | samba-c290906b3f238ba0246624525046b6cdda214d27.tar.gz samba-c290906b3f238ba0246624525046b6cdda214d27.tar.bz2 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.h | 1 | ||||
-rw-r--r-- | 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; } |