]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
CVE-2020-25717 winbindd/idmap: apply const to struct idmap_methods pointers
authorStefan Metzmacher <metze@samba.org>
Thu, 21 Mar 2019 11:30:37 +0000 (12:30 +0100)
committerJule Anger <janger@samba.org>
Mon, 8 Nov 2021 09:52:08 +0000 (10:52 +0100)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14539

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14556

(cherry picked from commit 95b0dac0af5bc7ee85c6c8099dda135c36c9684b)

14 files changed:
source3/include/idmap.h
source3/winbindd/idmap.c
source3/winbindd/idmap_ad.c
source3/winbindd/idmap_autorid.c
source3/winbindd/idmap_hash/idmap_hash.c
source3/winbindd/idmap_ldap.c
source3/winbindd/idmap_nss.c
source3/winbindd/idmap_passdb.c
source3/winbindd/idmap_proto.h
source3/winbindd/idmap_rfc2307.c
source3/winbindd/idmap_rid.c
source3/winbindd/idmap_script.c
source3/winbindd/idmap_tdb.c
source3/winbindd/idmap_tdb2.c

index 8d80643e6e91ac81ba9c617aab996e4aa61c7b57..dce60f1f76d9921b8005ec09781b0d9f8c5b140a 100644 (file)
@@ -42,7 +42,7 @@ struct idmap_domain {
         * so don't rely on this being filled out everywhere!
         */
        struct dom_sid dom_sid;
-       struct idmap_methods *methods;
+       const struct idmap_methods *methods;
        NTSTATUS (*query_user)(struct idmap_domain *domain,
                               struct wbint_userinfo *info);
        uint32_t low_id;
index bfac7f86432d3bc16f2517fbc01d3fc7c7419d3f..eee28992929a58c6d4d735752d6e314aa33a840a 100644 (file)
@@ -40,7 +40,7 @@ static_decl_idmap;
 
 struct idmap_backend {
        const char *name;
-       struct idmap_methods *methods;
+       const struct idmap_methods *methods;
        struct idmap_backend *prev, *next;
 };
 static struct idmap_backend *backends = NULL;
@@ -285,7 +285,7 @@ static bool idmap_found_domain_backend(const char *domname,
        return false;
 }
 
-static struct idmap_methods *get_methods(const char *name)
+static const struct idmap_methods *get_methods(const char *name)
 {
        struct idmap_backend *b;
 
@@ -309,7 +309,7 @@ bool idmap_is_offline(void)
 **********************************************************************/
 
 NTSTATUS smb_register_idmap(int version, const char *name,
-                           struct idmap_methods *methods)
+                           const struct idmap_methods *methods)
 {
        struct idmap_backend *entry;
 
index 3bfeeee2d74b0a5268be0f3a91014d457244a913..5cd258d49c4fce9ada4c37177f25391fd87694af 100644 (file)
@@ -1003,7 +1003,7 @@ static NTSTATUS idmap_ad_sids_to_unixids_retry(struct idmap_domain *dom,
        return status;
 }
 
-static struct idmap_methods ad_methods = {
+static const struct idmap_methods ad_methods = {
        .init            = idmap_ad_initialize,
        .unixids_to_sids = idmap_ad_unixids_to_sids_retry,
        .sids_to_unixids = idmap_ad_sids_to_unixids_retry,
index 1d0f0fafb82d78399d275220c8fc8f4c96d06f86..636852119b262c3579dda5c190a9c1768338e26a 100644 (file)
@@ -919,7 +919,7 @@ done:
        return status;
 }
 
-static struct idmap_methods autorid_methods = {
+static const struct idmap_methods autorid_methods = {
        .init = idmap_autorid_initialize,
        .unixids_to_sids = idmap_autorid_unixids_to_sids,
        .sids_to_unixids = idmap_autorid_sids_to_unixids,
index 1747b7c56c11082136af7a0446a50042c8fbd5f8..267ff3e5edc6b2681a956fade95d6cb963d6c9d4 100644 (file)
@@ -331,7 +331,7 @@ static NTSTATUS nss_hash_close(void)
  Dispatch Tables for IDMap and NssInfo Methods
 ********************************************************************/
 
-static struct idmap_methods hash_idmap_methods = {
+static const struct idmap_methods hash_idmap_methods = {
        .init            = idmap_hash_initialize,
        .unixids_to_sids = unixids_to_sids,
        .sids_to_unixids = sids_to_unixids,
index 86cb6f1bc5112bd6044e6e9a863cfa6bb58bb278..82f425ec9d0763bc0c3071cb46b56976e6bc341c 100644 (file)
@@ -1093,7 +1093,7 @@ done:
  Close the idmap ldap instance
 **********************************/
 
-static struct idmap_methods idmap_ldap_methods = {
+static const struct idmap_methods idmap_ldap_methods = {
 
        .init = idmap_ldap_db_init,
        .unixids_to_sids = idmap_ldap_unixids_to_sids,
index 16f5a74bc0f3b702232c5f2305402f7d1b83e5e9..da50e2b4aa7507a2dc4ac13d875fae0d3235f95f 100644 (file)
@@ -199,8 +199,7 @@ static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_ma
  Close the idmap tdb instance
 **********************************/
 
-static struct idmap_methods nss_methods = {
-
+static const struct idmap_methods nss_methods = {
        .init = idmap_nss_int_init,
        .unixids_to_sids = idmap_nss_unixids_to_sids,
        .sids_to_unixids = idmap_nss_sids_to_unixids,
index 75fc732cca052223caa608db1d252a2db415dada..758f31a2c9d39eb17df6424399e4fa88a458f264 100644 (file)
@@ -75,12 +75,7 @@ static NTSTATUS idmap_pdb_sids_to_unixids(struct idmap_domain *dom, struct id_ma
        return NT_STATUS_OK;
 }
 
-/**********************************
- Close the idmap tdb instance
-**********************************/
-
-static struct idmap_methods passdb_methods = {
-
+static const struct idmap_methods passdb_methods = {
        .init = idmap_pdb_init,
        .unixids_to_sids = idmap_pdb_unixids_to_sids,
        .sids_to_unixids = idmap_pdb_sids_to_unixids,
index a36d6c2f5bbcbcadaa8d5eb777663cbceddac216..adc04430a67f8ed8aba5774df2db7a35bab82fcc 100644 (file)
@@ -29,7 +29,7 @@
 
 bool idmap_is_offline(void);
 NTSTATUS smb_register_idmap(int version, const char *name,
-                           struct idmap_methods *methods);
+                           const struct idmap_methods *methods);
 void idmap_close(void);
 NTSTATUS idmap_allocate_uid(struct unixid *id);
 NTSTATUS idmap_allocate_gid(struct unixid *id);
index 2fffaec6cca73a0bcf2dc33533cfe5a5f8f33e10..b8e478907e93db2d1e0bb95f65c0fbc2ce9621be 100644 (file)
@@ -838,7 +838,7 @@ err:
        return status;
 }
 
-static struct idmap_methods rfc2307_methods = {
+static const struct idmap_methods rfc2307_methods = {
        .init = idmap_rfc2307_initialize,
        .unixids_to_sids = idmap_rfc2307_unixids_to_sids,
        .sids_to_unixids = idmap_rfc2307_sids_to_unixids,
index e5bb1fa856ce3f90ffaba08e920c22c9d4ef2e92..33f049695f488349df06539730060651f89360d0 100644 (file)
@@ -168,7 +168,7 @@ static NTSTATUS idmap_rid_sids_to_unixids(struct idmap_domain *dom, struct id_ma
        return NT_STATUS_OK;
 }
 
-static struct idmap_methods rid_methods = {
+static const struct idmap_methods rid_methods = {
        .init = idmap_rid_initialize,
        .unixids_to_sids = idmap_rid_unixids_to_sids,
        .sids_to_unixids = idmap_rid_sids_to_unixids,
index f382f896b351eea5da661ac25255df4b7c2ec643..a56ad7b93fbef3f1e4e3e2a134a4c742f21632ae 100644 (file)
@@ -665,7 +665,7 @@ failed:
        return ret;
 }
 
-static struct idmap_methods db_methods = {
+static const struct idmap_methods db_methods = {
        .init            = idmap_script_db_init,
        .unixids_to_sids = idmap_script_unixids_to_sids,
        .sids_to_unixids = idmap_script_sids_to_unixids,
index c3215c4dd9b0f4f29db3cf6d385536a134e7e78a..1ec2be0d789af9314a37f012499edd021fc8e6fa 100644 (file)
@@ -426,7 +426,7 @@ failed:
        return ret;
 }
 
-static struct idmap_methods db_methods = {
+static const struct idmap_methods db_methods = {
        .init = idmap_tdb_db_init,
        .unixids_to_sids = idmap_tdb_common_unixids_to_sids,
        .sids_to_unixids = idmap_tdb_common_sids_to_unixids,
index eceab9c07840d24196de5c716cd278b799801064..f2731f9a04a398bb99f6d0f01b7c5e37cf067ee7 100644 (file)
@@ -598,7 +598,7 @@ failed:
 }
 
 
-static struct idmap_methods db_methods = {
+static const struct idmap_methods db_methods = {
        .init            = idmap_tdb2_db_init,
        .unixids_to_sids = idmap_tdb_common_unixids_to_sids,
        .sids_to_unixids = idmap_tdb_common_sids_to_unixids,