Skip to content

Commit

Permalink
Cast gss_buffer_desc.value as a char*.
Browse files Browse the repository at this point in the history
Some compilers will error when applying pointer arithmetic to a void* and some platforms declare gss_buffer_desc.value as void*.
  • Loading branch information
aiudirog committed Jun 8, 2019
1 parent b6efe72 commit 611b1f1
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 27 deletions.
2 changes: 1 addition & 1 deletion gssapi/raw/ext_cred_imp_exp.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def export_cred(Creds creds not None):
maj_stat = gss_export_cred(&min_stat, creds.raw_creds, &exported_creds)

if maj_stat == GSS_S_COMPLETE:
res = exported_creds.value[:exported_creds.length]
res = (<char*>exported_creds.value)[:exported_creds.length]
gss_release_buffer(&min_stat, &exported_creds)
return res
else:
Expand Down
6 changes: 3 additions & 3 deletions gssapi/raw/ext_dce.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ cdef class IOV:
new_val = b'\x00' * new_len
else:
new_len = self._iov[i].buffer.length
new_val = self._iov[i].buffer.value[:new_len]
new_val = (<char*>self._iov[i].buffer.value)[:new_len]

alloc = False
if self._iov[i].type & GSS_IOV_BUFFER_FLAG_ALLOCATE:
Expand Down Expand Up @@ -503,7 +503,7 @@ def wrap_aead(SecurityContext context not None, bytes message not None,
&conf_used, &output_buffer)

if maj_stat == GSS_S_COMPLETE:
output_message = output_buffer.value[:output_buffer.length]
output_message = (<char*>output_buffer.value)[:output_buffer.length]
gss_release_buffer(&min_stat, &output_buffer)
return WrapResult(output_message, <bint>conf_used)
else:
Expand Down Expand Up @@ -553,7 +553,7 @@ def unwrap_aead(SecurityContext context not None, bytes message not None,
&conf_state, &qop_state)

if maj_stat == GSS_S_COMPLETE:
output_message = output_buffer.value[:output_buffer.length]
output_message = (<char*>output_buffer.value)[:output_buffer.length]
gss_release_buffer(&min_stat, &output_buffer)
return UnwrapResult(output_message, <bint>conf_state, qop_state)
else:
Expand Down
4 changes: 2 additions & 2 deletions gssapi/raw/ext_ggf.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def inquire_cred_by_oid(Creds cred_handle not None,
if data_set != GSS_C_NO_BUFFER_SET:
for i in range(data_set.count):
token = data_set.elements[i]
py_tokens.append(token.value[:token.length])
py_tokens.append((<char*>token.value)[:token.length])

gss_release_buffer_set(&min_stat, &data_set)

Expand Down Expand Up @@ -124,7 +124,7 @@ def inquire_sec_context_by_oid(SecurityContext context not None,
if data_set != GSS_C_NO_BUFFER_SET:
for i in range(data_set.count):
token = data_set.elements[i]
py_tokens.append(token.value[:token.length])
py_tokens.append((<char*>token.value)[:token.length])

gss_release_buffer_set(&min_stat, &data_set)

Expand Down
6 changes: 3 additions & 3 deletions gssapi/raw/ext_rfc5587.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ def display_mech_attr(OID attr):
&long_desc)

if maj_stat == GSS_S_COMPLETE:
out_name = name.value[:name.length]
out_short = short_desc.value[:short_desc.length]
out_long = long_desc.value[:long_desc.length]
out_name = (<char*>name.value)[:name.length]
out_short = (<char*>short_desc.value)[:short_desc.length]
out_long = (<char*>long_desc.value)[:long_desc.length]

gss_release_buffer(&min_stat, &name)
gss_release_buffer(&min_stat, &short_desc)
Expand Down
6 changes: 3 additions & 3 deletions gssapi/raw/ext_rfc5801.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ def inquire_saslname_for_mech(OID mech not None):
&mech_name, &mech_desc)

if maj_stat == GSS_S_COMPLETE:
out_smn = sasl_mech_name.value[:sasl_mech_name.length]
out_mn = mech_name.value[:mech_name.length]
out_md = mech_desc.value[:mech_desc.length]
out_smn = (<char*>sasl_mech_name.value)[:sasl_mech_name.length]
out_mn = (<char*>mech_name.value)[:mech_name.length]
out_md = (<char*>mech_desc.value)[:mech_desc.length]

gss_release_buffer(&min_stat, &sasl_mech_name)
gss_release_buffer(&min_stat, &mech_name)
Expand Down
10 changes: 5 additions & 5 deletions gssapi/raw/ext_rfc6680.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def display_name_ext(Name name not None, OID name_type not None):
&name_type.raw_oid, &output_name)

if maj_stat == GSS_S_COMPLETE:
name_text = output_name.value[:output_name.length]
name_text = (<char*>output_name.value)[:output_name.length]
gss_release_buffer(&min_stat, &output_name)
return name_text
else:
Expand Down Expand Up @@ -126,7 +126,7 @@ def inquire_name(Name name not None, mech_name=True, attrs=True):
if attr_names != GSS_C_NO_BUFFER_SET:
for i in range(attr_names.count):
attr_name = attr_names.elements[i]
py_attr_names.append(attr_name.value[:attr_name.length])
py_attr_names.append((<char*>attr_name.value)[:attr_name.length])

gss_release_buffer_set(&min_stat, &attr_names)

Expand Down Expand Up @@ -233,9 +233,9 @@ def get_name_attribute(Name name not None, attr not None, more=None):
&more_val)

if maj_stat == GSS_S_COMPLETE:
py_vals.append(val_buff.value[:val_buff.length])
py_vals.append((<char*>val_buff.value)[:val_buff.length])
py_displ_vals.append(
displ_val_buff.value[:displ_val_buff.length])
(<char*>displ_val_buff.value)[:displ_val_buff.length])

gss_release_buffer(&min_stat, &val_buff)
gss_release_buffer(&min_stat, &displ_val_buff)
Expand Down Expand Up @@ -310,7 +310,7 @@ def export_name_composite(Name name not None):
maj_stat = gss_export_name_composite(&min_stat, name.raw_name, &res)

if maj_stat == GSS_S_COMPLETE:
py_res = res.value[:res.length]
py_res = (<char*>res.value)[:res.length]
gss_release_buffer(&min_stat, &res)
return py_res
else:
Expand Down
6 changes: 3 additions & 3 deletions gssapi/raw/message.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def get_mic(SecurityContext context not None, message, qop=None):
&message_buffer, &token_buffer)

if maj_stat == GSS_S_COMPLETE:
res = token_buffer.value[:token_buffer.length]
res = (<char*>token_buffer.value)[:token_buffer.length]
gss_release_buffer(&min_stat, &token_buffer)
return res
else:
Expand Down Expand Up @@ -220,7 +220,7 @@ def wrap(SecurityContext context not None, message, confidential=True,
&message_buffer, &conf_used, &output_buffer)

if maj_stat == GSS_S_COMPLETE:
output_message = output_buffer.value[:output_buffer.length]
output_message = (<char*>output_buffer.value)[:output_buffer.length]
gss_release_buffer(&min_stat, &output_buffer)
return WrapResult(output_message, <bint>conf_used)
else:
Expand Down Expand Up @@ -268,7 +268,7 @@ def unwrap(SecurityContext context not None, message):
&output_buffer, &conf_state, &qop_state)

if maj_stat == GSS_S_COMPLETE:
output_message = output_buffer.value[:output_buffer.length]
output_message = (<char*>output_buffer.value)[:output_buffer.length]
gss_release_buffer(&min_stat, &output_buffer)
return UnwrapResult(output_message, <bint>conf_state, qop_state)
else:
Expand Down
2 changes: 1 addition & 1 deletion gssapi/raw/misc.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def _display_status(unsigned int error_code, bint is_major_code,

if maj_stat == GSS_S_COMPLETE:
call_again = bool(msg_ctx_out)
msg_out = msg_buff.value[:msg_buff.length]
msg_out = (<char*>msg_buff.value)[:msg_buff.length]
gss_release_buffer(&min_stat, &msg_buff)
return (msg_out, msg_ctx_out, call_again)
else:
Expand Down
4 changes: 2 additions & 2 deletions gssapi/raw/names.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def display_name(Name name not None, name_type=True):

cdef OID py_name_type
if maj_stat == GSS_S_COMPLETE:
text = output_buffer.value[:output_buffer.length]
text = (<char*>output_buffer.value)[:output_buffer.length]
gss_release_buffer(&min_stat, &output_buffer)
if name_type:
if output_name_type == GSS_C_NO_OID:
Expand Down Expand Up @@ -240,7 +240,7 @@ def export_name(Name name not None):
if maj_stat == GSS_S_COMPLETE:
# force conversion to a python string with the specified length
# (we use the slice to tell cython that we know the length already)
res = exported_name.value[:exported_name.length]
res = (<char*>exported_name.value)[:exported_name.length]
gss_release_buffer(&min_stat, &exported_name)
return res
else:
Expand Down
8 changes: 4 additions & 4 deletions gssapi/raw/sec_contexts.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ flags=None, lifetime=None, channel_bindings=None, input_token=None)

output_token = None
if output_token_buffer.length:
output_token = output_token_buffer.value[:output_token_buffer.length]
output_token = (<char*>output_token_buffer.value)[:output_token_buffer.length]
cdef OM_uint32 tmp_min_stat
gss_release_buffer(&tmp_min_stat, &output_token_buffer)

Expand Down Expand Up @@ -330,7 +330,7 @@ channel_bindings=None)

output_token = None
if output_token_buffer.length:
output_token = output_token_buffer.value[:output_token_buffer.length]
output_token = (<char*>output_token_buffer.value)[:output_token_buffer.length]
cdef OM_uint32 tmp_min_stat
gss_release_buffer(&tmp_min_stat, &output_token_buffer)

Expand Down Expand Up @@ -620,7 +620,7 @@ def export_sec_context(SecurityContext context not None):
&output_token)

if maj_stat == GSS_S_COMPLETE:
res_token = output_token.value[:output_token.length]
res_token = (<char*>output_token.value)[:output_token.length]
gss_release_buffer(&min_stat, &output_token)
return res_token
else:
Expand Down Expand Up @@ -665,7 +665,7 @@ def delete_sec_context(SecurityContext context not None, local_only=True):
GSS_C_NO_BUFFER)

if maj_stat == GSS_S_COMPLETE:
res = output_token.value[:output_token.length]
res = (<char*>output_token.value)[:output_token.length]
context.raw_ctx = NULL
return res
else:
Expand Down

0 comments on commit 611b1f1

Please sign in to comment.