summaryrefslogtreecommitdiff
path: root/databases/compass/files/kerberos-heimdal.patch
diff options
context:
space:
mode:
Diffstat (limited to 'databases/compass/files/kerberos-heimdal.patch')
-rw-r--r--databases/compass/files/kerberos-heimdal.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/databases/compass/files/kerberos-heimdal.patch b/databases/compass/files/kerberos-heimdal.patch
new file mode 100644
index 000000000000..2ef5795dd1d9
--- /dev/null
+++ b/databases/compass/files/kerberos-heimdal.patch
@@ -0,0 +1,82 @@
+diff -ur package.orig/src/unix/kerberos_gss.cc package/src/unix/kerberos_gss.cc
+--- package.orig/src/unix/kerberos_gss.cc 1985-10-26 17:15:00.000000000 +0900
++++ package/src/unix/kerberos_gss.cc 2024-05-29 05:59:03.862817000 +0900
+@@ -120,9 +120,9 @@
+
+ namespace node_kerberos {
+
+-const char* krb5_get_err_text(const krb5_context&, krb5_error_code code) {
+- return COMERR_CALL(error_message)(code);
+-}
++//const char* krb5_get_err_text(const krb5_context& ctx, krb5_error_code code) {
++// return COMERR_CALL(krb5_get_error_message)(ctx, code);
++//}
+
+ static gss_result gss_success_result(int ret);
+ static gss_result gss_error_result(OM_uint32 err_maj, OM_uint32 err_min);
+@@ -138,7 +138,7 @@
+ int code;
+ krb5_context kcontext;
+ krb5_keytab kt = NULL;
+- krb5_kt_cursor cursor = NULL;
++ krb5_kt_cursor cursor;
+ krb5_keytab_entry entry;
+ char* pname = NULL;
+
+@@ -174,12 +174,12 @@
+ if (strncmp(pname, match, match_len) == 0) {
+ details = pname;
+ KRB5_CALL(krb5_free_unparsed_name)(kcontext, pname);
+- KRB5_CALL(krb5_free_keytab_entry_contents)(kcontext, &entry);
++ KRB5_CALL(krb5_kt_free_entry)(kcontext, &entry);
+ break;
+ }
+
+ KRB5_CALL(krb5_free_unparsed_name)(kcontext, pname);
+- KRB5_CALL(krb5_free_keytab_entry_contents)(kcontext, &entry);
++ KRB5_CALL(krb5_kt_free_entry)(kcontext, &entry);
+ }
+
+ if (details.empty()) {
+@@ -189,8 +189,7 @@
+ result.data = std::move(details);
+ }
+ end:
+- if (cursor)
+- KRB5_CALL(krb5_kt_end_seq_get)(kcontext, kt, &cursor);
++ KRB5_CALL(krb5_kt_end_seq_get)(kcontext, kt, &cursor);
+ if (kt)
+ KRB5_CALL(krb5_kt_close)(kcontext, kt);
+ KRB5_CALL(krb5_free_context)(kcontext);
+@@ -223,7 +222,7 @@
+ name_token.value = (char*)service;
+
+ maj_stat =
+- GSS_CALL(gss_import_name)(&min_stat, &name_token, GSS_VALUE(gss_nt_service_name), &state->server_name);
++ GSS_CALL(gss_import_name)(&min_stat, &name_token, GSS_VALUE(GSS_C_NT_HOSTBASED_SERVICE), &state->server_name);
+
+ if (GSS_ERROR(maj_stat)) {
+ ret = gss_error_result(maj_stat, min_stat);
+diff -ur package.orig/src/unix/kerberos_gss.h package/src/unix/kerberos_gss.h
+--- package.orig/src/unix/kerberos_gss.h 1985-10-26 17:15:00.000000000 +0900
++++ package/src/unix/kerberos_gss.h 2024-05-29 06:03:39.889151000 +0900
+@@ -18,8 +18,9 @@
+ #define KERBEROS_GSS_H
+
+ extern "C" {
++ #include <krb5.h>
+ #include <gssapi/gssapi.h>
+- #include <gssapi/gssapi_generic.h>
++ // #include <gssapi/gssapi_generic.h>
+ #include <gssapi/gssapi_krb5.h>
+ }
+
+@@ -27,7 +28,7 @@
+
+ namespace node_kerberos {
+
+-const char* krb5_get_err_text(const krb5_context&, krb5_error_code code);
++// const char* krb5_get_err_text(const krb5_context&, krb5_error_code code);
+
+ #define AUTH_GSS_ERROR -1
+ #define AUTH_GSS_COMPLETE 1