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 | |
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)
-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; } |