Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 538842
Collapse All | Expand All

(-)mit-krb5-orig/Manifest (-20 / +4 lines)
Lines 1-30 Link Here
1
-----BEGIN PGP SIGNED MESSAGE-----
2
Hash: SHA256
3
4
AUX kpropd.xinetd 194 SHA256 eaa3838a6ca8db901db359cac3435d4f703a9a10534f02eeb37f494dd21a1736 SHA512 c9bbd13f2fadfd2a925bfae834ba61f227cd4386b4c4466b5227d93c792f4549778ef4d6e08353372df99804459277c71f61b41ec71f3afcc600d73c5705f72f WHIRLPOOL d77ae7b0094c4f42a7ea9cee5d36d0dba844a9ed5d59c621e47c7fa4b75c84fec3414e079c570513711b378d1b0fef61156f675a0df79ee61540d9492416fe42
1
AUX kpropd.xinetd 194 SHA256 eaa3838a6ca8db901db359cac3435d4f703a9a10534f02eeb37f494dd21a1736 SHA512 c9bbd13f2fadfd2a925bfae834ba61f227cd4386b4c4466b5227d93c792f4549778ef4d6e08353372df99804459277c71f61b41ec71f3afcc600d73c5705f72f WHIRLPOOL d77ae7b0094c4f42a7ea9cee5d36d0dba844a9ed5d59c621e47c7fa4b75c84fec3414e079c570513711b378d1b0fef61156f675a0df79ee61540d9492416fe42
5
AUX mit-krb5-1.12_warn_cflags.patch 448 SHA256 67d3c91061933bd5393b9a6ee8fe2e3f5cd287c4eee7b92798cc2e201712c681 SHA512 42364d9cd8c0a6fd28ae661eeac4d0dd3f2001fe290bf9731ee99c2c786a6488805fc93057d59e201e2cef1e5280af4c170187aa5603f4cf542906abc0fccc2b WHIRLPOOL 9fa704dde00b0201d765199893bf787c5c104070596b05bc12e7f41ae21c4c60c8d25b21fe8573ecd3e63ab769238a78c5cf70f4d086a23f71423b1cad283eaa
2
AUX mit-krb5-1.12_warn_cflags.patch 448 SHA256 67d3c91061933bd5393b9a6ee8fe2e3f5cd287c4eee7b92798cc2e201712c681 SHA512 42364d9cd8c0a6fd28ae661eeac4d0dd3f2001fe290bf9731ee99c2c786a6488805fc93057d59e201e2cef1e5280af4c170187aa5603f4cf542906abc0fccc2b WHIRLPOOL 9fa704dde00b0201d765199893bf787c5c104070596b05bc12e7f41ae21c4c60c8d25b21fe8573ecd3e63ab769238a78c5cf70f4d086a23f71423b1cad283eaa
3
AUX mit-krb5-2015-001-patch-r113.patch 12569 SHA256 c41cb0dd88abb53543697a6e91832d6e0639a99a811c3092904eff03fa4b5ec6 SHA512 9c3d1f75ba6814dc8864a6b6c5a5e53d729ec2f8fe468036bea5cb540ac4a58b4748c5af920c61347fe71af8d900501b68b5d3f538bc89791d7bfde70e1ebb69 WHIRLPOOL 771fa37b8496a77e9913c4882ea7ab8e03cc9dd32b00c024549f54c15d0dba1bbcf3e224abb567dc1acfc13d6e33ffa2b9973c777d4f730c3c5b95b1196e90aa
4
AUX mit-krb5-CVE-2014-5353.patch 2688 SHA256 fcdfd81dc63abbdeaca4eb5bbcd3c3088c44e3a96aa7fe191f82c341d38f360c SHA512 736753afb36bc494bc42f3cd33fc013ad49625e8d90672b85784f9f4fe96ff8d3f8c014aa1678d8892cb4204243369ee583232047fa9178fcdff03ab4087b171 WHIRLPOOL 710ee1431dce9046a21cbb8c2445fedcfb678553797b5d6ec21c060a8f20aea1cdaa99429f7a92dc5da710b5e26247b4c9bf747756eb4181e523f12a7e142ef0
5
AUX mit-krb5-CVE-2014-5354.patch 4906 SHA256 616362df107bb63fd060ed3084e98d3523bbea245ff1cef6bd2074a27838ae61 SHA512 e795258f958cd5ce86ff9930bdb7b119253d694bff32c0e4a9a414f184678d52f556a1f24af8032e447a2ecb24de24a50e8590d33019be2028ce452c8915daa9 WHIRLPOOL 2cab97507af57f27bc550ed3ef47617898169b6ecdc5c24c5a953498c9cae18c9b922e7d2e05a2aec7d97a10e148bdeb2ed20a46093a93b428c7dab1cbd47f4f
6
AUX mit-krb5-config_LDFLAGS.patch 466 SHA256 fbb4d9be71ef536a344d415b9c56ea42c5c2a2ef02ec3a866d9da47b3acd93d3 SHA512 9a1ca9b33e7708346eda78d199fdc51f0d7bd08d3d65ea15a19955a6155ab71b8ee0c8989859d6dff293a141f197ea19394a91b3b641181140a289b743e0f0e7 WHIRLPOOL f6c58e652c4c365c4f28894d404413a075cc6c5323f83b18d711dc831bb574623db371ccbc1a5aae0ddf030a1b85e1ad50c06f5904ae5554bb4026e464a2c75f
6
AUX mit-krb5-config_LDFLAGS.patch 466 SHA256 fbb4d9be71ef536a344d415b9c56ea42c5c2a2ef02ec3a866d9da47b3acd93d3 SHA512 9a1ca9b33e7708346eda78d199fdc51f0d7bd08d3d65ea15a19955a6155ab71b8ee0c8989859d6dff293a141f197ea19394a91b3b641181140a289b743e0f0e7 WHIRLPOOL f6c58e652c4c365c4f28894d404413a075cc6c5323f83b18d711dc831bb574623db371ccbc1a5aae0ddf030a1b85e1ad50c06f5904ae5554bb4026e464a2c75f
7
AUX mit-krb5kadmind.initd-r1 592 SHA256 3e55c79f19aaa6ef6b64a621c03dbb2eac3ad923916dc803f4c1bfe48ce89fbb SHA512 f0595e9bbcd85badb403af7febce1fa28278bd7fc8118498948171ea12a27ce8b3c479a34b36639d7370193bc69a0b093ae7e3b66473078dabc38864fec931e9 WHIRLPOOL 16147fc873ad16c16410e82df817fdb7ff068ef5cc1c50d9bb5558f134db36d516ab80628714e836a20883d0d1dfd17bfca5a41225be4ecca270580f2db28e70
7
AUX mit-krb5kadmind.initd-r1 592 SHA256 3e55c79f19aaa6ef6b64a621c03dbb2eac3ad923916dc803f4c1bfe48ce89fbb SHA512 f0595e9bbcd85badb403af7febce1fa28278bd7fc8118498948171ea12a27ce8b3c479a34b36639d7370193bc69a0b093ae7e3b66473078dabc38864fec931e9 WHIRLPOOL 16147fc873ad16c16410e82df817fdb7ff068ef5cc1c50d9bb5558f134db36d516ab80628714e836a20883d0d1dfd17bfca5a41225be4ecca270580f2db28e70
8
AUX mit-krb5kdc.initd-r1 556 SHA256 709309dea043aa306c2fcf0960e0993a6db540c220de64cf92d6b85f1cca23c5 SHA512 d6d0076886ce284fc395fafc2dc253b4b3ee97b2986dea51388d96a1e1294680fb171f475efc7844559e2c6aac44b26678a9255921db9a58dcf2e7164f0aeec5 WHIRLPOOL 87e54c3df6b8b45058fe0c90c25946e37228aba32077ebcb595a82a0a6fc7268a516dcb1cfd0ce3fd82afedf19b5df2399ac05931f207d0f3d2e26afd590abef
8
AUX mit-krb5kdc.initd-r1 556 SHA256 709309dea043aa306c2fcf0960e0993a6db540c220de64cf92d6b85f1cca23c5 SHA512 d6d0076886ce284fc395fafc2dc253b4b3ee97b2986dea51388d96a1e1294680fb171f475efc7844559e2c6aac44b26678a9255921db9a58dcf2e7164f0aeec5 WHIRLPOOL 87e54c3df6b8b45058fe0c90c25946e37228aba32077ebcb595a82a0a6fc7268a516dcb1cfd0ce3fd82afedf19b5df2399ac05931f207d0f3d2e26afd590abef
9
AUX mit-krb5kpropd.initd-r1 595 SHA256 c374ea05d7e9f15e10c8f9dbd0cad6548e0f92aef7de33e5dbc27222e9407e7b SHA512 a18c523aebbb6b8512cd261eac2149c7422214ef6a233e1ceb1b4da9187eeca317ddd75a153b13382571778931bbed00b1803ed015ff01875c8d565b3f3a593f WHIRLPOOL 869f8aec4764a12b5b5506a2fab8ea2641b58cb347a1db60110cccbb011dc51ab9115824828184abc55efccf540d6b014a57e0891b1d6d4ce28ff35405197aeb
9
AUX mit-krb5kpropd.initd-r1 595 SHA256 c374ea05d7e9f15e10c8f9dbd0cad6548e0f92aef7de33e5dbc27222e9407e7b SHA512 a18c523aebbb6b8512cd261eac2149c7422214ef6a233e1ceb1b4da9187eeca317ddd75a153b13382571778931bbed00b1803ed015ff01875c8d565b3f3a593f WHIRLPOOL 869f8aec4764a12b5b5506a2fab8ea2641b58cb347a1db60110cccbb011dc51ab9115824828184abc55efccf540d6b014a57e0891b1d6d4ce28ff35405197aeb
10
DIST krb5-1.13-signed.tar 12083200 SHA256 dc8f79ae9ab777d0f815e84ed02ac4ccfe3d5826eb4947a195dfce9fd95a9582 SHA512 99cf647ab39f5a34acaf2049908f91d3f3822f4afd3b9dad1630b31c72518398069f4f3d3840168122cb12aa5e5540466729bc714fbda96eb9403e635f88d244 WHIRLPOOL 4cb9bff7c9bf97cbe2a41eaa0f253a8c891b9beff9a2e65f1652eae235c90b811efeae1ee7b608e90ad993a3959a787a06a34f62cec1a709b2fe6ec59f91e3d1
10
DIST krb5-1.13-signed.tar 12083200 SHA256 dc8f79ae9ab777d0f815e84ed02ac4ccfe3d5826eb4947a195dfce9fd95a9582 SHA512 99cf647ab39f5a34acaf2049908f91d3f3822f4afd3b9dad1630b31c72518398069f4f3d3840168122cb12aa5e5540466729bc714fbda96eb9403e635f88d244 WHIRLPOOL 4cb9bff7c9bf97cbe2a41eaa0f253a8c891b9beff9a2e65f1652eae235c90b811efeae1ee7b608e90ad993a3959a787a06a34f62cec1a709b2fe6ec59f91e3d1
11
EBUILD mit-krb5-1.13-r1.ebuild 4002 SHA256 94038732561ff8f9b1f3fda54a7fd1f6ba471da4bcafada60a4a32a08d7368e6 SHA512 f6119ecf686c8b7edfc8631e0c7c7ecc03f23c80a9b496687ed8f9295ce191c7d5b4f50055198379312f3508d9974fc0fcd6936e6fd81aab7a7c5fb6a4c02ee6 WHIRLPOOL b4345ec97b2a610666dfb0442efc47a45439f8283ab787134c50d9238f82334380da68968053112bc719003be598c2e8c15cf3393501a1837d82e0452bdeddb9
11
EBUILD mit-krb5-1.13.ebuild 3852 SHA256 517b74d24b7aaf6262974ea579527f726ddb2b660d00fada3537820bd1aa93fa SHA512 1b6051b7a2f0dd14ab15f77285efc49861e095ba2cac7b6ae9d96cbaac8095b2fc5bb2043b19be118996689841f0c14ebbe673773d304ae224eed20343e6b5a0 WHIRLPOOL 91343588511735397042a93154e17800af95f84cb9a022c51aa8433975fa1edc16615a4902bc81f71570c54abb693d3c0216604cbbcb1937ebadedf350f188a3
12
EBUILD mit-krb5-1.13.ebuild 3852 SHA256 517b74d24b7aaf6262974ea579527f726ddb2b660d00fada3537820bd1aa93fa SHA512 1b6051b7a2f0dd14ab15f77285efc49861e095ba2cac7b6ae9d96cbaac8095b2fc5bb2043b19be118996689841f0c14ebbe673773d304ae224eed20343e6b5a0 WHIRLPOOL 91343588511735397042a93154e17800af95f84cb9a022c51aa8433975fa1edc16615a4902bc81f71570c54abb693d3c0216604cbbcb1937ebadedf350f188a3
12
MISC ChangeLog 66879 SHA256 44c911cb03f9aff015ad41938c3584182bc0f7a716ed28b19578ead8536a7756 SHA512 81ba6c44652b497323608c6e9089e458ae861d35b8e5a01effe8062d39cfb20ef7b17632272694c0c3fce0a0883714e403e182f7dca6e0de2eebc9142e51e04d WHIRLPOOL 78992f6a54210d75bdfcb6c89a8a6a7bb0b41e6565afcf27b94021d6de6bf93bd1178f0dd502c8fe80f0f07d20a427efcecf31432fdfa4ff183a3d1130f5eae4
13
MISC ChangeLog 66879 SHA256 44c911cb03f9aff015ad41938c3584182bc0f7a716ed28b19578ead8536a7756 SHA512 81ba6c44652b497323608c6e9089e458ae861d35b8e5a01effe8062d39cfb20ef7b17632272694c0c3fce0a0883714e403e182f7dca6e0de2eebc9142e51e04d WHIRLPOOL 78992f6a54210d75bdfcb6c89a8a6a7bb0b41e6565afcf27b94021d6de6bf93bd1178f0dd502c8fe80f0f07d20a427efcecf31432fdfa4ff183a3d1130f5eae4
13
MISC metadata.xml 668 SHA256 da5862dde92f34b882870961cb9f1e4aa8209fc549e32a43d99770a9de8b232d SHA512 0038aeb7cda74161d2e2fe97c5124ee6cc86a24b9503714c128cd8b9af8b8050a89cf5dd3aadd66b1714c1d1aeb8564d50479547a586200793ea485e9f9c6c8b WHIRLPOOL 52394a4f4d5acb11f3bf2e76e036707c7f7741990d70bafb5c87a6da5d191b6aee3cb8383f6e66694cbda7458eb1a869c7ec8758750741835e2f1af4e028378c
14
MISC metadata.xml 668 SHA256 da5862dde92f34b882870961cb9f1e4aa8209fc549e32a43d99770a9de8b232d SHA512 0038aeb7cda74161d2e2fe97c5124ee6cc86a24b9503714c128cd8b9af8b8050a89cf5dd3aadd66b1714c1d1aeb8564d50479547a586200793ea485e9f9c6c8b WHIRLPOOL 52394a4f4d5acb11f3bf2e76e036707c7f7741990d70bafb5c87a6da5d191b6aee3cb8383f6e66694cbda7458eb1a869c7ec8758750741835e2f1af4e028378c
14
-----BEGIN PGP SIGNATURE-----
15
Version: GnuPG v2
16
17
iQIcBAEBCAAGBQJUcvIfAAoJEHfx8XVYajsf4/YP/jSNvDrqyihf26FzbvaBxmHw
18
0FJJdmx05rp0Mlv4SaTcGg3hw11SP3YhV1b9Opx4n4j8a8IUiAezRXdOVfch8hpy
19
7tQyE0ZKgTpC9G/Rgh8P/6crk+pyDSUIVI7mnnWH/hQ5nCGaXPUgQn7XSD7nT4/a
20
XQGkILl60Dhslp2wsv0uVMEhdlwHfEt3I4oCLm3eor+feEBgyrF//Yes0iFLW4G0
21
lgiVW0tqvK45idoHJywlqjt0lMsoHxDI+qSaj+R0QVYKX/lCq+i454j726hAACuw
22
MxEGe0l9m1kSuIDHJfXV8avOjtHUoeoGooeH9wnU+oFbT4FFEK0CeeLz/ipVQDnV
23
EXzOdExCVDVPv4kd6WDbcpB30dp0NYl0TL6lTBkAFCx3hF0vCLEZru53qzSogLHC
24
Ex6ImvFDHjsHRL6tYko0gC8kxic7zjJx3YrQ24qFUSWiVmlAainSvpDYGx5mgtC6
25
mFCw1ih14OW0+UbCDKZTFHQ5ONfsyVq9IPRV7zrxeIcFScpK7A45mqD5EGczwSd2
26
NQsL/qvZi1X4wcYYsvQaMgZg62CRHiOjiL/rAVUfQ0vwsabIfihaHzfmDPMmCJyC
27
+EnPvuxn20vI/r+B65mwoX5SBkb4KHc9nQmysdpubkvg+TTmKNRMtvVk4KWHmjwa
28
X3WAVeq7CarzN1/Un2oJ
29
=aNu4
30
-----END PGP SIGNATURE-----
(-)mit-krb5-orig/files/mit-krb5-2015-001-patch-r113.patch (+343 lines)
Line 0 Link Here
1
diff --git a/src/kadmin/server/kadm_rpc_svc.c b/src/kadmin/server/kadm_rpc_svc.c
2
index 3837931..f4d2a7c 100644
3
--- a/src/kadmin/server/kadm_rpc_svc.c
4
+++ b/src/kadmin/server/kadm_rpc_svc.c
5
@@ -4,7 +4,7 @@
6
  *
7
  */
8
 
9
-#include <k5-platform.h>
10
+#include <k5-int.h>
11
 #include <gssrpc/rpc.h>
12
 #include <gssapi/gssapi_krb5.h> /* for gss_nt_krb5_name */
13
 #include <syslog.h>
14
@@ -296,14 +296,8 @@ check_rpcsec_auth(struct svc_req *rqstp)
15
      c1 = krb5_princ_component(kctx, princ, 0);
16
      c2 = krb5_princ_component(kctx, princ, 1);
17
      realm = krb5_princ_realm(kctx, princ);
18
-     if (strncmp(handle->params.realm, realm->data, realm->length) == 0
19
-	 && strncmp("kadmin", c1->data, c1->length) == 0) {
20
-
21
-	  if (strncmp("history", c2->data, c2->length) == 0)
22
-	       goto fail_princ;
23
-	  else
24
-	       success = 1;
25
-     }
26
+     success = data_eq_string(*realm, handle->params.realm) &&
27
+	     data_eq_string(*c1, "kadmin") && !data_eq_string(*c2, "history");
28
 
29
 fail_princ:
30
      if (!success) {
31
diff --git a/src/lib/gssapi/krb5/context_time.c b/src/lib/gssapi/krb5/context_time.c
32
index b3d1db0..a18cfb0 100644
33
--- a/src/lib/gssapi/krb5/context_time.c
34
+++ b/src/lib/gssapi/krb5/context_time.c
35
@@ -40,7 +40,7 @@ krb5_gss_context_time(minor_status, context_handle, time_rec)
36
 
37
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
38
 
39
-    if (! ctx->established) {
40
+    if (ctx->terminated || !ctx->established) {
41
         *minor_status = KG_CTX_INCOMPLETE;
42
         return(GSS_S_NO_CONTEXT);
43
     }
44
diff --git a/src/lib/gssapi/krb5/export_sec_context.c b/src/lib/gssapi/krb5/export_sec_context.c
45
index 18a3a34..1b3de68 100644
46
--- a/src/lib/gssapi/krb5/export_sec_context.c
47
+++ b/src/lib/gssapi/krb5/export_sec_context.c
48
@@ -45,6 +45,11 @@ krb5_gss_export_sec_context(minor_status, context_handle, interprocess_token)
49
     *minor_status = 0;
50
 
51
     ctx = (krb5_gss_ctx_id_t) *context_handle;
52
+    if (ctx->terminated) {
53
+        *minor_status = KG_CTX_INCOMPLETE;
54
+        return (GSS_S_NO_CONTEXT);
55
+    }
56
+
57
     context = ctx->k5_context;
58
     kret = krb5_gss_ser_init(context);
59
     if (kret)
60
diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h
61
index 7e807cc..a0e8625 100644
62
--- a/src/lib/gssapi/krb5/gssapiP_krb5.h
63
+++ b/src/lib/gssapi/krb5/gssapiP_krb5.h
64
@@ -206,6 +206,7 @@ typedef struct _krb5_gss_ctx_id_rec {
65
     unsigned int established : 1;
66
     unsigned int have_acceptor_subkey : 1;
67
     unsigned int seed_init : 1;  /* XXX tested but never actually set */
68
+    unsigned int terminated : 1;
69
     OM_uint32 gss_flags;
70
     unsigned char seed[16];
71
     krb5_gss_name_t here;
72
diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
73
index 6456b23..77b7fff 100644
74
--- a/src/lib/gssapi/krb5/gssapi_krb5.c
75
+++ b/src/lib/gssapi/krb5/gssapi_krb5.c
76
@@ -369,7 +369,7 @@ krb5_gss_inquire_sec_context_by_oid (OM_uint32 *minor_status,
77
 
78
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
79
 
80
-    if (!ctx->established)
81
+    if (ctx->terminated || !ctx->established)
82
         return GSS_S_NO_CONTEXT;
83
 
84
     for (i = 0; i < sizeof(krb5_gss_inquire_sec_context_by_oid_ops)/
85
diff --git a/src/lib/gssapi/krb5/inq_context.c b/src/lib/gssapi/krb5/inq_context.c
86
index eacb0fd..096df2a 100644
87
--- a/src/lib/gssapi/krb5/inq_context.c
88
+++ b/src/lib/gssapi/krb5/inq_context.c
89
@@ -105,7 +105,7 @@ krb5_gss_inquire_context(minor_status, context_handle, initiator_name,
90
 
91
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
92
 
93
-    if (! ctx->established) {
94
+    if (ctx->terminated || !ctx->established) {
95
         *minor_status = KG_CTX_INCOMPLETE;
96
         return(GSS_S_NO_CONTEXT);
97
     }
98
diff --git a/src/lib/gssapi/krb5/k5seal.c b/src/lib/gssapi/krb5/k5seal.c
99
index 7665cba..f1c74dd 100644
100
--- a/src/lib/gssapi/krb5/k5seal.c
101
+++ b/src/lib/gssapi/krb5/k5seal.c
102
@@ -342,7 +342,7 @@ kg_seal(minor_status, context_handle, conf_req_flag, qop_req,
103
 
104
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
105
 
106
-    if (! ctx->established) {
107
+    if (ctx->terminated || !ctx->established) {
108
         *minor_status = KG_CTX_INCOMPLETE;
109
         return(GSS_S_NO_CONTEXT);
110
     }
111
diff --git a/src/lib/gssapi/krb5/k5sealiov.c b/src/lib/gssapi/krb5/k5sealiov.c
112
index a129670..b53e348 100644
113
--- a/src/lib/gssapi/krb5/k5sealiov.c
114
+++ b/src/lib/gssapi/krb5/k5sealiov.c
115
@@ -281,7 +281,7 @@ kg_seal_iov(OM_uint32 *minor_status,
116
     }
117
 
118
     ctx = (krb5_gss_ctx_id_rec *)context_handle;
119
-    if (!ctx->established) {
120
+    if (ctx->terminated || !ctx->established) {
121
         *minor_status = KG_CTX_INCOMPLETE;
122
         return GSS_S_NO_CONTEXT;
123
     }
124
diff --git a/src/lib/gssapi/krb5/k5unseal.c b/src/lib/gssapi/krb5/k5unseal.c
125
index 0573958..673c883 100644
126
--- a/src/lib/gssapi/krb5/k5unseal.c
127
+++ b/src/lib/gssapi/krb5/k5unseal.c
128
@@ -492,7 +492,7 @@ kg_unseal(minor_status, context_handle, input_token_buffer,
129
 
130
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
131
 
132
-    if (! ctx->established) {
133
+    if (ctx->terminated || !ctx->established) {
134
         *minor_status = KG_CTX_INCOMPLETE;
135
         return(GSS_S_NO_CONTEXT);
136
     }
137
diff --git a/src/lib/gssapi/krb5/k5unsealiov.c b/src/lib/gssapi/krb5/k5unsealiov.c
138
index f34d802..8b67042 100644
139
--- a/src/lib/gssapi/krb5/k5unsealiov.c
140
+++ b/src/lib/gssapi/krb5/k5unsealiov.c
141
@@ -625,7 +625,7 @@ kg_unseal_iov(OM_uint32 *minor_status,
142
     OM_uint32 code;
143
 
144
     ctx = (krb5_gss_ctx_id_rec *)context_handle;
145
-    if (!ctx->established) {
146
+    if (ctx->terminated || !ctx->established) {
147
         *minor_status = KG_CTX_INCOMPLETE;
148
         return GSS_S_NO_CONTEXT;
149
     }
150
diff --git a/src/lib/gssapi/krb5/lucid_context.c b/src/lib/gssapi/krb5/lucid_context.c
151
index 85df7fd..449e71f 100644
152
--- a/src/lib/gssapi/krb5/lucid_context.c
153
+++ b/src/lib/gssapi/krb5/lucid_context.c
154
@@ -75,6 +75,11 @@ gss_krb5int_export_lucid_sec_context(
155
     *minor_status = 0;
156
     *data_set = GSS_C_NO_BUFFER_SET;
157
 
158
+    if (ctx->terminated || !ctx->established) {
159
+        *minor_status = KG_CTX_INCOMPLETE;
160
+        return GSS_S_NO_CONTEXT;
161
+    }
162
+
163
     retval = generic_gss_oid_decompose(minor_status,
164
                                        GSS_KRB5_EXPORT_LUCID_SEC_CONTEXT_OID,
165
                                        GSS_KRB5_EXPORT_LUCID_SEC_CONTEXT_OID_LENGTH,
166
diff --git a/src/lib/gssapi/krb5/prf.c b/src/lib/gssapi/krb5/prf.c
167
index e19291f..e897074 100644
168
--- a/src/lib/gssapi/krb5/prf.c
169
+++ b/src/lib/gssapi/krb5/prf.c
170
@@ -58,6 +58,10 @@ krb5_gss_pseudo_random(OM_uint32 *minor_status,
171
     ns.data = NULL;
172
 
173
     ctx = (krb5_gss_ctx_id_t)context;
174
+    if (ctx->terminated || !ctx->established) {
175
+        *minor_status = KG_CTX_INCOMPLETE;
176
+        return GSS_S_NO_CONTEXT;
177
+    }
178
 
179
     switch (prf_key) {
180
     case GSS_C_PRF_KEY_FULL:
181
diff --git a/src/lib/gssapi/krb5/process_context_token.c b/src/lib/gssapi/krb5/process_context_token.c
182
index ae33180..a672f48 100644
183
--- a/src/lib/gssapi/krb5/process_context_token.c
184
+++ b/src/lib/gssapi/krb5/process_context_token.c
185
@@ -39,11 +39,18 @@ krb5_gss_process_context_token(minor_status, context_handle,
186
 
187
     ctx = (krb5_gss_ctx_id_t) context_handle;
188
 
189
-    if (! ctx->established) {
190
+    if (ctx->terminated || !ctx->established) {
191
         *minor_status = KG_CTX_INCOMPLETE;
192
         return(GSS_S_NO_CONTEXT);
193
     }
194
 
195
+    /* We only support context deletion tokens for now, and RFC 4121 does not
196
+     * define a context deletion token. */
197
+    if (ctx->proto) {
198
+        *minor_status = 0;
199
+        return(GSS_S_DEFECTIVE_TOKEN);
200
+    }
201
+
202
     /* "unseal" the token */
203
 
204
     if (GSS_ERROR(majerr = kg_unseal(minor_status, context_handle,
205
@@ -52,8 +59,8 @@ krb5_gss_process_context_token(minor_status, context_handle,
206
                                      KG_TOK_DEL_CTX)))
207
         return(majerr);
208
 
209
-    /* that's it.  delete the context */
210
-
211
-    return(krb5_gss_delete_sec_context(minor_status, &context_handle,
212
-                                       GSS_C_NO_BUFFER));
213
+    /* Mark the context as terminated, but do not delete it (as that would
214
+     * leave the caller with a dangling context handle). */
215
+    ctx->terminated = 1;
216
+    return(GSS_S_COMPLETE);
217
 }
218
diff --git a/src/lib/gssapi/krb5/wrap_size_limit.c b/src/lib/gssapi/krb5/wrap_size_limit.c
219
index 7bc4221..ed5c599 100644
220
--- a/src/lib/gssapi/krb5/wrap_size_limit.c
221
+++ b/src/lib/gssapi/krb5/wrap_size_limit.c
222
@@ -95,7 +95,7 @@ krb5_gss_wrap_size_limit(minor_status, context_handle, conf_req_flag,
223
     }
224
 
225
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
226
-    if (! ctx->established) {
227
+    if (ctx->terminated || !ctx->established) {
228
         *minor_status = KG_CTX_INCOMPLETE;
229
         return(GSS_S_NO_CONTEXT);
230
     }
231
diff --git a/src/lib/gssapi/mechglue/mglueP.h b/src/lib/gssapi/mechglue/mglueP.h
232
index e56b9c1..2b5145e 100644
233
--- a/src/lib/gssapi/mechglue/mglueP.h
234
+++ b/src/lib/gssapi/mechglue/mglueP.h
235
@@ -25,7 +25,6 @@ do {								\
236
  */
237
 typedef struct gss_union_ctx_id_struct {
238
 	struct gss_union_ctx_id_struct *loopback;
239
-	struct gss_union_ctx_id_struct *interposer;
240
 	gss_OID			mech_type;
241
 	gss_ctx_id_t		internal_ctx_id;
242
 } gss_union_ctx_id_desc, *gss_union_ctx_id_t;
243
diff --git a/src/lib/kadm5/kadm_rpc_xdr.c b/src/lib/kadm5/kadm_rpc_xdr.c
244
index 42ac783..975f94c 100644
245
--- a/src/lib/kadm5/kadm_rpc_xdr.c
246
+++ b/src/lib/kadm5/kadm_rpc_xdr.c
247
@@ -320,6 +320,7 @@ bool_t xdr_krb5_tl_data(XDR *xdrs, krb5_tl_data **tl_data_head)
248
 	       free(tl);
249
 	       tl = tl2;
250
 	  }
251
+	  *tl_data_head = NULL;
252
 	  break;
253
 
254
      case XDR_ENCODE:
255
@@ -1096,6 +1097,7 @@ xdr_krb5_principal(XDR *xdrs, krb5_principal *objp)
256
     case XDR_FREE:
257
 	if(*objp != NULL)
258
 	    krb5_free_principal(context, *objp);
259
+	*objp = NULL;
260
 	break;
261
     }
262
     return TRUE;
263
diff --git a/src/lib/rpc/auth_gssapi_misc.c b/src/lib/rpc/auth_gssapi_misc.c
264
index 53bdb98..a05ea19 100644
265
--- a/src/lib/rpc/auth_gssapi_misc.c
266
+++ b/src/lib/rpc/auth_gssapi_misc.c
267
@@ -322,7 +322,6 @@ bool_t auth_gssapi_unwrap_data(
268
      if (! (*xdr_func)(&temp_xdrs, xdr_ptr)) {
269
 	  PRINTF(("gssapi_unwrap_data: deserializing arguments failed\n"));
270
 	  gss_release_buffer(minor, &out_buf);
271
-	  xdr_free(xdr_func, xdr_ptr);
272
 	  XDR_DESTROY(&temp_xdrs);
273
 	  return FALSE;
274
      }
275
diff --git a/src/lib/rpc/svc_auth_gss.c b/src/lib/rpc/svc_auth_gss.c
276
index 09a3534..b81c4a3 100644
277
--- a/src/lib/rpc/svc_auth_gss.c
278
+++ b/src/lib/rpc/svc_auth_gss.c
279
@@ -65,16 +65,6 @@ extern const gss_OID_desc * const gss_mech_spkm3;
280
 
281
 extern SVCAUTH svc_auth_none;
282
 
283
-/*
284
- * from mit-krb5-1.2.1 mechglue/mglueP.h:
285
- * Array of context IDs typed by mechanism OID
286
- */
287
-typedef struct gss_union_ctx_id_t {
288
-  gss_OID     mech_type;
289
-  gss_ctx_id_t    internal_ctx_id;
290
-} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
291
-
292
-
293
 static auth_gssapi_log_badauth_func log_badauth = NULL;
294
 static caddr_t log_badauth_data = NULL;
295
 static auth_gssapi_log_badauth2_func log_badauth2 = NULL;
296
@@ -239,16 +229,8 @@ svcauth_gss_accept_sec_context(struct svc_req *rqst,
297
 		gd->ctx = GSS_C_NO_CONTEXT;
298
 		goto errout;
299
 	}
300
-	/*
301
-	 * ANDROS: krb5 mechglue returns ctx of size 8 - two pointers,
302
-	 * one to the mechanism oid, one to the internal_ctx_id
303
-	 */
304
-	if ((gr->gr_ctx.value = mem_alloc(sizeof(gss_union_ctx_id_desc))) == NULL) {
305
-		fprintf(stderr, "svcauth_gss_accept_context: out of memory\n");
306
-		goto errout;
307
-	}
308
-	memcpy(gr->gr_ctx.value, gd->ctx, sizeof(gss_union_ctx_id_desc));
309
-	gr->gr_ctx.length = sizeof(gss_union_ctx_id_desc);
310
+	gr->gr_ctx.value = "xxxx";
311
+	gr->gr_ctx.length = 4;
312
 
313
 	/* gr->gr_win = 0x00000005; ANDROS: for debugging linux kernel version...  */
314
 	gr->gr_win = sizeof(gd->seqmask) * 8;
315
@@ -520,8 +502,6 @@ gssrpc__svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg,
316
 
317
 		if (!svcauth_gss_nextverf(rqst, htonl(gr.gr_win))) {
318
 			gss_release_buffer(&min_stat, &gr.gr_token);
319
-			mem_free(gr.gr_ctx.value,
320
-				 sizeof(gss_union_ctx_id_desc));
321
 			ret_freegc (AUTH_FAILED);
322
 		}
323
 		*no_dispatch = TRUE;
324
@@ -531,7 +511,6 @@ gssrpc__svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg,
325
 
326
 		gss_release_buffer(&min_stat, &gr.gr_token);
327
 		gss_release_buffer(&min_stat, &gd->checksum);
328
-		mem_free(gr.gr_ctx.value, sizeof(gss_union_ctx_id_desc));
329
 		if (!call_stat)
330
 			ret_freegc (AUTH_FAILED);
331
 
332
diff --git a/src/tests/gssapi/t_prf.c b/src/tests/gssapi/t_prf.c
333
index 254f8fb..7f04899 100644
334
--- a/src/tests/gssapi/t_prf.c
335
+++ b/src/tests/gssapi/t_prf.c
336
@@ -127,6 +127,7 @@ main(int argc, char *argv[])
337
     uctx.mech_type = &mech_krb5;
338
     uctx.internal_ctx_id = (gss_ctx_id_t)&kgctx;
339
     kgctx.k5_context = NULL;
340
+    kgctx.established = 1;
341
     kgctx.have_acceptor_subkey = 1;
342
     kb1.contents = k1buf;
343
     kb2.contents = k2buf;
(-)mit-krb5-orig/files/mit-krb5-CVE-2014-5353.patch (+63 lines)
Line 0 Link Here
1
From d1f707024f1d0af6e54a18885322d70fa15ec4d3 Mon Sep 17 00:00:00 2001
2
From: Greg Hudson <ghudson@mit.edu>
3
Date: Fri, 5 Dec 2014 14:01:39 -0500
4
Subject: [PATCH] Fix LDAP misused policy name crash [CVE-2014-5353]
5
6
In krb5_ldap_get_password_policy_from_dn, if LDAP_SEARCH returns
7
successfully with no results, return KRB5_KDB_NOENTRY instead of
8
returning success with a zeroed-out policy object.  This fixes a null
9
dereference when an admin attempts to use an LDAP ticket policy name
10
as a password policy name.
11
12
CVE-2014-5353:
13
14
In MIT krb5, when kadmind is configured to use LDAP for the KDC
15
database, an authenticated remote attacker can cause a NULL dereference
16
by attempting to use a named ticket policy object as a password policy
17
for a principal.  The attacker needs to be authenticated as a user who
18
has the elevated privilege for setting password policy by adding or
19
modifying principals.
20
21
Queries to LDAP scoped to the krbPwdPolicy object class will correctly
22
not return entries of other classes, such as ticket policy objects, but
23
may return success with no returned elements if an object with the
24
requested DN exists in a different object class.  In this case, the
25
routine to retrieve a password policy returned success with a password
26
policy object that consisted entirely of zeroed memory.  In particular,
27
accesses to the policy name will dereference a NULL pointer.  KDC
28
operation does not access the policy name field, but most kadmin
29
operations involving the principal with incorrect password policy
30
will trigger the crash.
31
32
Thanks to Patrik Kis for reporting this problem.
33
34
CVSSv2 Vector: AV:N/AC:M/Au:S/C:N/I:N/A:C/E:H/RL:OF/RC:C
35
36
[kaduk@mit.edu: CVE description and CVSS score]
37
38
ticket: 8051 (new)
39
target_version: 1.13.1
40
tags: pullup
41
---
42
 src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c | 7 ++++---
43
 1 file changed, 4 insertions(+), 3 deletions(-)
44
45
diff --git a/src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c b/src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c
46
index 522773e..6779f51 100644
47
--- a/src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c
48
+++ b/src/plugins/kdb/ldap/libkdb_ldap/ldap_pwd_policy.c
49
@@ -314,10 +314,11 @@ krb5_ldap_get_password_policy_from_dn(krb5_context context, char *pol_name,
50
     LDAP_SEARCH(pol_dn, LDAP_SCOPE_BASE, "(objectclass=krbPwdPolicy)", password_policy_attributes);
51
 
52
     ent=ldap_first_entry(ld, result);
53
-    if (ent != NULL) {
54
-        if ((st = populate_policy(context, ld, ent, pol_name, *policy)) != 0)
55
-            goto cleanup;
56
+    if (ent == NULL) {
57
+        st = KRB5_KDB_NOENTRY;
58
+        goto cleanup;
59
     }
60
+    st = populate_policy(context, ld, ent, pol_name, *policy);
61
 
62
 cleanup:
63
     ldap_msgfree(result);
(-)mit-krb5-orig/files/mit-krb5-CVE-2014-5354.patch (+113 lines)
Line 0 Link Here
1
From 04038bf3633c4b909b5ded3072dc88c8c419bf16 Mon Sep 17 00:00:00 2001
2
From: Ben Kaduk <kaduk@mit.edu>
3
Date: Wed, 19 Nov 2014 12:04:46 -0500
4
Subject: [PATCH] Support keyless principals in LDAP [CVE-2014-5354]
5
6
Operations like "kadmin -q 'addprinc -nokey foo'" or
7
"kadmin -q 'purgekeys -all foo'" result in principal entries with
8
no keys present, so krb5_encode_krbsecretkey() would just return
9
NULL, which then got unconditionally dereferenced in
10
krb5_add_ber_mem_ldap_mod().
11
12
Apply some fixes to krb5_encode_krbsecretkey() to handle zero-key
13
principals better, correct the test for an allocation failure, and
14
slightly restructure the cleanup handler to be shorter and more
15
appropriate for the usage.  Once it no longer short-circuits when
16
n_key_data is zero, it will produce an array of length two with both
17
entries NULL, which is treated as an empty list by the LDAP library,
18
the correct behavior for a keyless principal.
19
20
However, attributes with empty values are only handled by the LDAP
21
library for Modify operations, not Add operations (which only get
22
a sequence of Attribute, with no operation field).  Therefore, only
23
add an empty krbprincipalkey to the modlist when we will be performing a
24
Modify, and not when we will be performing an Add, which is conditional
25
on the (misspelled) create_standalone_prinicipal boolean.
26
27
CVE-2014-5354:
28
29
In MIT krb5, when kadmind is configured to use LDAP for the KDC
30
database, an authenticated remote attacker can cause a NULL
31
dereference by inserting into the database a principal entry which
32
contains no long-term keys.
33
34
In order for the LDAP KDC backend to translate a principal entry
35
from the database abstraction layer into the form expected by the
36
LDAP schema, the principal's keys are encoded into a
37
NULL-terminated array of length-value entries to be stored in the
38
LDAP database.  However, the subroutine which produced this array
39
did not correctly handle the case where no keys were present,
40
returning NULL instead of an empty array, and the array was
41
unconditionally dereferenced while adding to the list of LDAP
42
operations to perform.
43
44
Versions of MIT krb5 prior to 1.12 did not expose a way for
45
principal entries to have no long-term key material, and
46
therefore are not vulnerable.
47
48
    CVSSv2 Vector: AV:N/AC:M/Au:S/C:N/I:N/A:P/E:H/RL:OF/RC:C
49
50
ticket: 8041 (new)
51
tags: pullup
52
target_version: 1.13.1
53
subject: kadmind with ldap backend crashes when putting keyless entries
54
---
55
 src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c | 25 +++++++++++++++-------
56
 1 file changed, 17 insertions(+), 8 deletions(-)
57
58
diff --git a/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c b/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
59
index 3e560d9..10b5982 100644
60
--- a/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
61
+++ b/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
62
@@ -406,14 +406,14 @@ krb5_encode_krbsecretkey(krb5_key_data *key_data_in, int n_key_data,
63
     int num_versions = 1;
64
     int i, j, last;
65
     krb5_error_code err = 0;
66
-    krb5_key_data *key_data;
67
+    krb5_key_data *key_data = NULL;
68
 
69
-    if (n_key_data <= 0)
70
+    if (n_key_data < 0)
71
         return NULL;
72
 
73
     /* Make a shallow copy of the key data so we can alter it. */
74
     key_data = k5calloc(n_key_data, sizeof(*key_data), &err);
75
-    if (key_data_in == NULL)
76
+    if (key_data == NULL)
77
         goto cleanup;
78
     memcpy(key_data, key_data_in, n_key_data * sizeof(*key_data));
79
 
80
@@ -467,9 +467,8 @@ krb5_encode_krbsecretkey(krb5_key_data *key_data_in, int n_key_data,
81
     free(key_data);
82
     if (err != 0) {
83
         if (ret != NULL) {
84
-            for (i = 0; i <= num_versions; i++)
85
-                if (ret[i] != NULL)
86
-                    free (ret[i]);
87
+            for (i = 0; ret[i] != NULL; i++)
88
+                free (ret[i]);
89
             free (ret);
90
             ret = NULL;
91
         }
92
@@ -1036,9 +1035,19 @@ krb5_ldap_put_principal(krb5_context context, krb5_db_entry *entry,
93
         bersecretkey = krb5_encode_krbsecretkey (entry->key_data,
94
                                                  entry->n_key_data, mkvno);
95
 
96
-        if ((st=krb5_add_ber_mem_ldap_mod(&mods, "krbprincipalkey",
97
-                                          LDAP_MOD_REPLACE | LDAP_MOD_BVALUES, bersecretkey)) != 0)
98
+        if (bersecretkey == NULL) {
99
+            st = ENOMEM;
100
             goto cleanup;
101
+        }
102
+        /* An empty list of bervals is only accepted for modify operations,
103
+         * not add operations. */
104
+        if (bersecretkey[0] != NULL || !create_standalone_prinicipal) {
105
+            st = krb5_add_ber_mem_ldap_mod(&mods, "krbprincipalkey",
106
+                                           LDAP_MOD_REPLACE | LDAP_MOD_BVALUES,
107
+                                           bersecretkey);
108
+            if (st != 0)
109
+                goto cleanup;
110
+        }
111
 
112
         if (!(entry->mask & KADM5_PRINCIPAL)) {
113
             memset(strval, 0, sizeof(strval));
(-)mit-krb5-orig/mit-krb5-1.13-r1.ebuild (+147 lines)
Line 0 Link Here
1
# Copyright 1999-2014 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
3
# $Header: /var/cvsroot/gentoo-x86/app-crypt/mit-krb5/mit-krb5-1.13.ebuild,v 1.11 2014/11/23 19:04:22 zlogene Exp $
4
5
EAPI=5
6
PYTHON_COMPAT=( python{2_6,2_7} )
7
inherit autotools eutils flag-o-matic multilib-minimal python-any-r1 versionator
8
9
MY_P="${P/mit-}"
10
P_DIR=$(get_version_component_range 1-2)
11
DESCRIPTION="MIT Kerberos V"
12
HOMEPAGE="http://web.mit.edu/kerberos/www/"
13
SRC_URI="http://web.mit.edu/kerberos/dist/krb5/${P_DIR}/${MY_P}-signed.tar"
14
15
LICENSE="openafs-krb5-a BSD MIT OPENLDAP BSD-2 HPND BSD-4 ISC RSA CC-BY-SA-3.0 || ( BSD-2 GPL-2+ )"
16
SLOT="0"
17
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
18
IUSE="doc +keyutils openldap +pkinit selinux +threads test xinetd"
19
20
CDEPEND="!!app-crypt/heimdal
21
	>=sys-libs/e2fsprogs-libs-1.42.9[${MULTILIB_USEDEP}]
22
	|| ( >=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}]
23
		>=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}]
24
		>=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}] )
25
	keyutils? ( >=sys-apps/keyutils-1.5.8[${MULTILIB_USEDEP}] )
26
	openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
27
	pkinit? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
28
	xinetd? ( sys-apps/xinetd )
29
	abi_x86_32? (
30
		!<=app-emulation/emul-linux-x86-baselibs-20140508-r1
31
		!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
32
	)"
33
DEPEND="${CDEPEND}
34
	${PYTHON_DEPS}
35
	virtual/yacc
36
	doc? ( virtual/latex-base )
37
	test? ( ${PYTHON_DEPS}
38
			dev-lang/tcl
39
			dev-util/dejagnu )"
40
RDEPEND="${CDEPEND}
41
	selinux? ( sec-policy/selinux-kerberos )"
42
43
S=${WORKDIR}/${MY_P}/src
44
45
MULTILIB_CHOST_TOOLS=(
46
	/usr/bin/krb5-config
47
)
48
49
src_unpack() {
50
	unpack ${A}
51
	unpack ./"${MY_P}".tar.gz
52
}
53
54
src_prepare() {
55
	epatch "${FILESDIR}/${PN}-1.12_warn_cflags.patch"
56
	epatch "${FILESDIR}/${PN}-config_LDFLAGS.patch"
57
	epatch "${FILESDIR}/${PN}-CVE-2014-5354.patch"
58
	epatch "${FILESDIR}/${PN}-CVE-2014-5353.patch"
59
	epatch "${FILESDIR}/${PN}-2015-001-patch-r113.patch"
60
61
	eautoreconf
62
}
63
64
src_configure() {
65
	append-cppflags "-I${EPREFIX}/usr/include/et"
66
	# QA
67
	append-flags -fno-strict-aliasing
68
	append-flags -fno-strict-overflow
69
70
	multilib-minimal_src_configure
71
}
72
73
multilib_src_configure() {
74
	use keyutils || export ac_cv_header_keyutils_h=no
75
	ECONF_SOURCE=${S} \
76
	WARN_CFLAGS="set" \
77
	econf \
78
		$(use_with openldap ldap) \
79
		"$(multilib_native_use_with test tcl "${EPREFIX}/usr")" \
80
		$(use_enable pkinit) \
81
		$(use_enable threads thread-support) \
82
		--without-hesiod \
83
		--enable-shared \
84
		--with-system-et \
85
		--with-system-ss \
86
		--enable-dns-for-realm \
87
		--enable-kdc-lookaside-cache \
88
		--with-system-verto \
89
		--disable-rpath
90
}
91
92
multilib_src_compile() {
93
	emake -j1
94
}
95
96
multilib_src_test() {
97
	multilib_is_native_abi && emake -j1 check
98
}
99
100
multilib_src_install() {
101
	emake \
102
		DESTDIR="${D}" \
103
		EXAMPLEDIR="${EPREFIX}/usr/share/doc/${PF}/examples" \
104
		install
105
}
106
107
multilib_src_install_all() {
108
	# default database dir
109
	keepdir /var/lib/krb5kdc
110
111
	cd ..
112
	dodoc README
113
114
	if use doc; then
115
		dohtml -r doc/html/*
116
		docinto pdf
117
		dodoc doc/pdf/*.pdf
118
	fi
119
120
	newinitd "${FILESDIR}"/mit-krb5kadmind.initd-r1 mit-krb5kadmind
121
	newinitd "${FILESDIR}"/mit-krb5kdc.initd-r1 mit-krb5kdc
122
	newinitd "${FILESDIR}"/mit-krb5kpropd.initd-r1 mit-krb5kpropd
123
124
	insinto /etc
125
	newins "${ED}/usr/share/doc/${PF}/examples/krb5.conf" krb5.conf.example
126
	insinto /var/lib/krb5kdc
127
	newins "${ED}/usr/share/doc/${PF}/examples/kdc.conf" kdc.conf.example
128
129
	if use openldap ; then
130
		insinto /etc/openldap/schema
131
		doins "${S}/plugins/kdb/ldap/libkdb_ldap/kerberos.schema"
132
	fi
133
134
	if use xinetd ; then
135
		insinto /etc/xinetd.d
136
		newins "${FILESDIR}/kpropd.xinetd" kpropd
137
	fi
138
}
139
140
pkg_preinst() {
141
	if has_version "<${CATEGORY}/${PN}-1.8.0" ; then
142
		elog "MIT split the Kerberos applications from the base Kerberos"
143
		elog "distribution.  Kerberized versions of telnet, rlogin, rsh, rcp,"
144
		elog "ftp clients and telnet, ftp deamons now live in"
145
		elog "\"app-crypt/mit-krb5-appl\" package."
146
	fi
147
}

Return to bug 538842