diff --git a/VERSION b/VERSION index f0bb29e..3a3cd8c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.0 +1.3.1 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 2810d81..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 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