]> git.pld-linux.org Git - packages/nfs-utils.git/blob - nfs-utils-heimdal.patch
- updated to 2.6.4
[packages/nfs-utils.git] / nfs-utils-heimdal.patch
1 --- nfs-utils-1.2.3.dist/aclocal/kerberos5.m4~  2010-09-28 14:24:16.000000000 +0200
2 +++ nfs-utils-1.2.3.dist/aclocal/kerberos5.m4   2010-10-03 14:13:17.274424855 +0200
3 @@ -56,7 +56,11 @@
4        dnl of Heimdal Kerberos on SuSe
5        elif test \( -f $dir/include/heim_err.h -o\
6                  -f $dir/include/heimdal/heim_err.h \) -a \
7 -                -f $dir/lib/libroken.a; then
8 +                \( -f $dir/lib/libroken.a -o \
9 +                   -f $dir/lib64/libroken.a -o \
10 +                   -f $dir/lib64/libroken.so -o \
11 +                   -f $dir/lib/libroken.so \) ; then
12 +         K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(2),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
13           AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
14           KRBDIR="$dir"
15           gssapi_lib=gssapi
16 --- nfs-utils-2.5.3/utils/gssd/krb5_util.c.orig 2021-02-20 18:16:52.000000000 +0100
17 +++ nfs-utils-2.5.3/utils/gssd/krb5_util.c      2021-02-24 21:11:01.392926374 +0100
18 @@ -891,7 +891,11 @@
19                 myhostad[i+1] = 0;
20         }
21         if (adhostoverride)
22 +#ifdef HAVE_HEIMDAL
23 +               free(adhostoverride);
24 +#else
25                 krb5_free_string(context, adhostoverride);
26 +#endif
27  
28         code = krb5_get_default_realm(context, &default_realm);
29         if (code) {
30 @@ -1050,9 +1054,37 @@
31  {
32         krb5_error_code ret;
33         krb5_creds creds;
34 -       krb5_cc_cursor cur;
35         int found = 0;
36  
37 +#ifdef HAVE_HEIMDAL
38 +       krb5_creds pattern;
39 +       krb5_const_realm client_realm;
40 +
41 +       krb5_cc_clear_mcred(&pattern);
42 +
43 +       client_realm = krb5_principal_get_realm (context, principal);
44 +
45 +       ret = krb5_make_principal (context, &pattern.server,
46 +                                  client_realm, KRB5_TGS_NAME, client_realm,
47 +                                  NULL);
48 +       if (ret)
49 +         krb5_err (context, 1, ret, "krb5_make_principal");
50 +       pattern.client = principal;
51 +
52 +       ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
53 +       krb5_free_principal (context, pattern.server);
54 +       if (ret) {
55 +         if (ret == KRB5_CC_END)
56 +            return 1;
57 +         krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
58 +       }
59 +
60 +       found = creds.times.endtime > time(NULL);
61 +
62 +       krb5_free_cred_contents (context, &creds);
63 +#else
64 +       krb5_cc_cursor cur;
65 +
66         ret = krb5_cc_start_seq_get(context, ccache, &cur);
67         if (ret) 
68                 return 0;
69 @@ -1072,6 +1104,7 @@
70                 krb5_free_cred_contents(context, &creds);
71         }
72         krb5_cc_end_seq_get(context, ccache, &cur);
73 +#endif
74  
75         return found;
76  }
77 @@ -1118,6 +1151,9 @@
78         }
79         krb5_free_principal(context, principal);
80  err_princ:
81 +#ifdef HAVE_HEIMDAL
82 +#define KRB5_TC_OPENCLOSE              0x00000001
83 +#endif
84         krb5_cc_set_flags(context, ccache,  KRB5_TC_OPENCLOSE);
85         krb5_cc_close(context, ccache);
86  err_cache:
87 @@ -1455,7 +1491,7 @@
88  #endif
89         if (msg != NULL)
90                 return msg;
91 -#if HAVE_KRB5
92 +#ifdef HAVE_KRB5
93         return strdup(error_message(code));
94  #else
95         if (context != NULL)
This page took 0.092351 seconds and 3 git commands to generate.