All the little functions created by the IMPLEMENT_STACK_OF() macro will
cast their type-specific STACK into a real STACK and call the underlying sk_*** function. The problem is that if the STACK_OF(..) parameter being passed in has a "const *" qualifier, it is discarded by the cast. I'm currently implementing a fix for this but in the mean-time, this is one case I noticed (a few type-specific sk_**_num() functions pass in const type-specific stacks). If there are other errors in the code where consts are being discarded, we will similarly not notice them. yuck.
This commit is contained in:
parent
2ace287dea
commit
01296a6de0
@ -279,7 +279,7 @@ void sk_free(STACK *st)
|
||||
Free(st);
|
||||
}
|
||||
|
||||
int sk_num(STACK *st)
|
||||
int sk_num(const STACK *st)
|
||||
{
|
||||
if(st == NULL) return -1;
|
||||
return st->num;
|
||||
|
@ -79,7 +79,7 @@ typedef struct stack_st
|
||||
#define M_sk_num(sk) ((sk) ? (sk)->num:-1)
|
||||
#define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL)
|
||||
|
||||
int sk_num(STACK *);
|
||||
int sk_num(const STACK *);
|
||||
char *sk_value(STACK *, int);
|
||||
|
||||
char *sk_set(STACK *, int, char *);
|
||||
|
Loading…
x
Reference in New Issue
Block a user