From 6514d2474be31e1b97fe02f0a2c302463c8a0c88 Mon Sep 17 00:00:00 2001 From: Dan Wanek Date: Sun, 22 Nov 2020 17:11:29 -0600 Subject: [PATCH 1/3] ISSUE-12: Create mem pointer for context before gss_delete_sec_context --- gssapi.gemspec | 2 ++ lib/gssapi/lib_gssapi.rb | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gssapi.gemspec b/gssapi.gemspec index f6f9e3e..b355263 100644 --- a/gssapi.gemspec +++ b/gssapi.gemspec @@ -31,4 +31,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = '>= 1.8.7' gem.add_runtime_dependency 'ffi', '>= 1.0.1' + + gem.add_development_dependency "pry-byebug" end diff --git a/lib/gssapi/lib_gssapi.rb b/lib/gssapi/lib_gssapi.rb index 9ff67a5..c038bdc 100644 --- a/lib/gssapi/lib_gssapi.rb +++ b/lib/gssapi/lib_gssapi.rb @@ -179,11 +179,13 @@ def self.release_ptr(name_ptr) class GssCtxIdT < GssPointer def self.release_ptr(context_ptr) min_stat = FFI::MemoryPointer.new :OM_uint32 - maj_stat = LibGSSAPI.gss_delete_sec_context(min_stat, context_ptr, LibGSSAPI::GSS_C_NO_BUFFER) + ptr_p = FFI::MemoryPointer.new :pointer + ctx_ptr = ptr_p.write_pointer(context_ptr) + maj_stat = LibGSSAPI.gss_delete_sec_context(min_stat, ctx_ptr, LibGSSAPI::GSS_C_NO_BUFFER) end def self.gss_c_no_context - self.new(GSSAPI::LibGSSAPI::GSS_C_NO_CONTEXT) + GssPointer.new(GSSAPI::LibGSSAPI::GSS_C_NO_CONTEXT) end end From 94901d0e727c6a17313c33668aecddffdd6547af Mon Sep 17 00:00:00 2001 From: Dan Wanek Date: Tue, 24 Nov 2020 12:57:21 -0600 Subject: [PATCH 2/3] bump version to 1.3.1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index f0bb29e..3a3cd8c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.0 +1.3.1 From bdd6018d7fcbb02de0044ea48aa7c5a425de7378 Mon Sep 17 00:00:00 2001 From: tsogbadrakh Date: Thu, 30 Sep 2021 16:54:20 +0900 Subject: [PATCH 3/3] To use min state as variable --- lib/gssapi/simple.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/gssapi/simple.rb b/lib/gssapi/simple.rb index ca8bf7f..1c9a441 100644 --- a/lib/gssapi/simple.rb +++ b/lib/gssapi/simple.rb @@ -261,7 +261,11 @@ def unwrap_message(msg, encrypted = true) # @param [String] keytab the path to the keytab def set_keytab(keytab) maj_stat = LibGSSAPI.krb5_gss_register_acceptor_identity(keytab) - raise GssApiError.new(maj_stat), "krb5_gss_register_acceptor_identity did not return GSS_S_COMPLETE" if maj_stat != 0 + if maj_stat != 0 + min_stat = FFI::MemoryPointer.new :OM_uint32 + min_stat.write_int(0) + raise GssApiError.new(maj_stat, min_stat), "krb5_gss_register_acceptor_identity did not return GSS_S_COMPLETE" + end true end