Problem Description:

I was getting compile issues when changing from openssl 0.9.8 to openssl
current snapshot.  The errors were in safestack.h.  It appears that some
functions do indeed cast but others do not.  void* is currently being passed
in due to CHECKED_PTR_OF being part of the macro.  This returns void*.
Failure to compile was using the compiler under Sun Forte 6 U2.

Solution:

Changed SKM_sk_num, SKM_sk_value, SKIM_sk_pop_free functions and added the
appropriate cast.

 

--- ../../../../openssl-orig/crypto/stack/safestack.h Tue Oct 14 20:00:13
2008

+++ safestack.h   Tue Dec  2 15:01:48 2008

@@ -132,9 +132,9 @@

 #define SKM_sk_free(type, st) \

      sk_free(CHECKED_PTR_OF(STACK_OF(type), st))

 #define SKM_sk_num(type, st) \

-     sk_num(CHECKED_PTR_OF(STACK_OF(type), st))

+     sk_num((const _STACK *)CHECKED_PTR_OF(STACK_OF(type), st))

 #define SKM_sk_value(type, st,i) \

-     ((type *)sk_value(CHECKED_PTR_OF(STACK_OF(type), st), i))

+     ((type *)sk_value((const _STACK *)CHECKED_PTR_OF(STACK_OF(type), st),
i))

 #define SKM_sk_set(type, st,i,val) \

      sk_set(CHECKED_PTR_OF(STACK_OF(type), st), i, CHECKED_PTR_OF(type,
val))

 #define SKM_sk_zero(type, st) \

@@ -160,7 +160,7 @@

 #define SKM_sk_dup(type, st) \

      (STACK_OF(type) *)sk_dup(CHECKED_PTR_OF(STACK_OF(type), st))

 #define SKM_sk_pop_free(type, st, free_func) \

-     sk_pop_free(CHECKED_PTR_OF(STACK_OF(type), st),
CHECKED_SK_FREE_FUNC(type, free_func))

+     sk_pop_free((_STACK *)CHECKED_PTR_OF(STACK_OF(type), st),
CHECKED_SK_FREE_FUNC(type, free_func))

 #define SKM_sk_shift(type, st) \

      (type *)sk_shift(CHECKED_PTR_OF(STACK_OF(type), st))

 #define SKM_sk_pop(type, st) \

 

Brad

 

 

Reply via email to