Skip to content

Commit 611b1f1

Browse files
committed
Cast gss_buffer_desc.value as a char*.
Some compilers will error when applying pointer arithmetic to a void* and some platforms declare gss_buffer_desc.value as void*.
1 parent b6efe72 commit 611b1f1

10 files changed

+27
-27
lines changed

gssapi/raw/ext_cred_imp_exp.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def export_cred(Creds creds not None):
4848
maj_stat = gss_export_cred(&min_stat, creds.raw_creds, &exported_creds)
4949

5050
if maj_stat == GSS_S_COMPLETE:
51-
res = exported_creds.value[:exported_creds.length]
51+
res = (<char*>exported_creds.value)[:exported_creds.length]
5252
gss_release_buffer(&min_stat, &exported_creds)
5353
return res
5454
else:

gssapi/raw/ext_dce.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ cdef class IOV:
209209
new_val = b'\x00' * new_len
210210
else:
211211
new_len = self._iov[i].buffer.length
212-
new_val = self._iov[i].buffer.value[:new_len]
212+
new_val = (<char*>self._iov[i].buffer.value)[:new_len]
213213

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

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

555555
if maj_stat == GSS_S_COMPLETE:
556-
output_message = output_buffer.value[:output_buffer.length]
556+
output_message = (<char*>output_buffer.value)[:output_buffer.length]
557557
gss_release_buffer(&min_stat, &output_buffer)
558558
return UnwrapResult(output_message, <bint>conf_state, qop_state)
559559
else:

gssapi/raw/ext_ggf.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def inquire_cred_by_oid(Creds cred_handle not None,
7474
if data_set != GSS_C_NO_BUFFER_SET:
7575
for i in range(data_set.count):
7676
token = data_set.elements[i]
77-
py_tokens.append(token.value[:token.length])
77+
py_tokens.append((<char*>token.value)[:token.length])
7878

7979
gss_release_buffer_set(&min_stat, &data_set)
8080

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

129129
gss_release_buffer_set(&min_stat, &data_set)
130130

gssapi/raw/ext_rfc5587.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ def display_mech_attr(OID attr):
140140
&long_desc)
141141

142142
if maj_stat == GSS_S_COMPLETE:
143-
out_name = name.value[:name.length]
144-
out_short = short_desc.value[:short_desc.length]
145-
out_long = long_desc.value[:long_desc.length]
143+
out_name = (<char*>name.value)[:name.length]
144+
out_short = (<char*>short_desc.value)[:short_desc.length]
145+
out_long = (<char*>long_desc.value)[:long_desc.length]
146146

147147
gss_release_buffer(&min_stat, &name)
148148
gss_release_buffer(&min_stat, &short_desc)

gssapi/raw/ext_rfc5801.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ def inquire_saslname_for_mech(OID mech not None):
5050
&mech_name, &mech_desc)
5151

5252
if maj_stat == GSS_S_COMPLETE:
53-
out_smn = sasl_mech_name.value[:sasl_mech_name.length]
54-
out_mn = mech_name.value[:mech_name.length]
55-
out_md = mech_desc.value[:mech_desc.length]
53+
out_smn = (<char*>sasl_mech_name.value)[:sasl_mech_name.length]
54+
out_mn = (<char*>mech_name.value)[:mech_name.length]
55+
out_md = (<char*>mech_desc.value)[:mech_desc.length]
5656

5757
gss_release_buffer(&min_stat, &sasl_mech_name)
5858
gss_release_buffer(&min_stat, &mech_name)

gssapi/raw/ext_rfc6680.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def display_name_ext(Name name not None, OID name_type not None):
6767
&name_type.raw_oid, &output_name)
6868

6969
if maj_stat == GSS_S_COMPLETE:
70-
name_text = output_name.value[:output_name.length]
70+
name_text = (<char*>output_name.value)[:output_name.length]
7171
gss_release_buffer(&min_stat, &output_name)
7272
return name_text
7373
else:
@@ -126,7 +126,7 @@ def inquire_name(Name name not None, mech_name=True, attrs=True):
126126
if attr_names != GSS_C_NO_BUFFER_SET:
127127
for i in range(attr_names.count):
128128
attr_name = attr_names.elements[i]
129-
py_attr_names.append(attr_name.value[:attr_name.length])
129+
py_attr_names.append((<char*>attr_name.value)[:attr_name.length])
130130

131131
gss_release_buffer_set(&min_stat, &attr_names)
132132

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

235235
if maj_stat == GSS_S_COMPLETE:
236-
py_vals.append(val_buff.value[:val_buff.length])
236+
py_vals.append((<char*>val_buff.value)[:val_buff.length])
237237
py_displ_vals.append(
238-
displ_val_buff.value[:displ_val_buff.length])
238+
(<char*>displ_val_buff.value)[:displ_val_buff.length])
239239

240240
gss_release_buffer(&min_stat, &val_buff)
241241
gss_release_buffer(&min_stat, &displ_val_buff)
@@ -310,7 +310,7 @@ def export_name_composite(Name name not None):
310310
maj_stat = gss_export_name_composite(&min_stat, name.raw_name, &res)
311311

312312
if maj_stat == GSS_S_COMPLETE:
313-
py_res = res.value[:res.length]
313+
py_res = (<char*>res.value)[:res.length]
314314
gss_release_buffer(&min_stat, &res)
315315
return py_res
316316
else:

gssapi/raw/message.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def get_mic(SecurityContext context not None, message, qop=None):
8282
&message_buffer, &token_buffer)
8383

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

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

270270
if maj_stat == GSS_S_COMPLETE:
271-
output_message = output_buffer.value[:output_buffer.length]
271+
output_message = (<char*>output_buffer.value)[:output_buffer.length]
272272
gss_release_buffer(&min_stat, &output_buffer)
273273
return UnwrapResult(output_message, <bint>conf_state, qop_state)
274274
else:

gssapi/raw/misc.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def _display_status(unsigned int error_code, bint is_major_code,
165165

166166
if maj_stat == GSS_S_COMPLETE:
167167
call_again = bool(msg_ctx_out)
168-
msg_out = msg_buff.value[:msg_buff.length]
168+
msg_out = (<char*>msg_buff.value)[:msg_buff.length]
169169
gss_release_buffer(&min_stat, &msg_buff)
170170
return (msg_out, msg_ctx_out, call_again)
171171
else:

gssapi/raw/names.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def display_name(Name name not None, name_type=True):
151151

152152
cdef OID py_name_type
153153
if maj_stat == GSS_S_COMPLETE:
154-
text = output_buffer.value[:output_buffer.length]
154+
text = (<char*>output_buffer.value)[:output_buffer.length]
155155
gss_release_buffer(&min_stat, &output_buffer)
156156
if name_type:
157157
if output_name_type == GSS_C_NO_OID:
@@ -240,7 +240,7 @@ def export_name(Name name not None):
240240
if maj_stat == GSS_S_COMPLETE:
241241
# force conversion to a python string with the specified length
242242
# (we use the slice to tell cython that we know the length already)
243-
res = exported_name.value[:exported_name.length]
243+
res = (<char*>exported_name.value)[:exported_name.length]
244244
gss_release_buffer(&min_stat, &exported_name)
245245
return res
246246
else:

gssapi/raw/sec_contexts.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ flags=None, lifetime=None, channel_bindings=None, input_token=None)
223223

224224
output_token = None
225225
if output_token_buffer.length:
226-
output_token = output_token_buffer.value[:output_token_buffer.length]
226+
output_token = (<char*>output_token_buffer.value)[:output_token_buffer.length]
227227
cdef OM_uint32 tmp_min_stat
228228
gss_release_buffer(&tmp_min_stat, &output_token_buffer)
229229

@@ -330,7 +330,7 @@ channel_bindings=None)
330330

331331
output_token = None
332332
if output_token_buffer.length:
333-
output_token = output_token_buffer.value[:output_token_buffer.length]
333+
output_token = (<char*>output_token_buffer.value)[:output_token_buffer.length]
334334
cdef OM_uint32 tmp_min_stat
335335
gss_release_buffer(&tmp_min_stat, &output_token_buffer)
336336

@@ -620,7 +620,7 @@ def export_sec_context(SecurityContext context not None):
620620
&output_token)
621621

622622
if maj_stat == GSS_S_COMPLETE:
623-
res_token = output_token.value[:output_token.length]
623+
res_token = (<char*>output_token.value)[:output_token.length]
624624
gss_release_buffer(&min_stat, &output_token)
625625
return res_token
626626
else:
@@ -665,7 +665,7 @@ def delete_sec_context(SecurityContext context not None, local_only=True):
665665
GSS_C_NO_BUFFER)
666666

667667
if maj_stat == GSS_S_COMPLETE:
668-
res = output_token.value[:output_token.length]
668+
res = (<char*>output_token.value)[:output_token.length]
669669
context.raw_ctx = NULL
670670
return res
671671
else:

0 commit comments

Comments
 (0)