diff options
author | Geoff Thorpe <geoff@openssl.org> | 2000-05-31 15:28:01 +0000 |
---|---|---|
committer | Geoff Thorpe <geoff@openssl.org> | 2000-05-31 15:28:01 +0000 |
commit | 01296a6de0f968d741d871efda8ab4ed5420442d (patch) | |
tree | 4f259b26953e62e2d63e6f411636800260e796cd /crypto/stack | |
parent | 2ace287deaf64df6ccfd8e61ab4022207c66ec06 (diff) |
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.
Diffstat (limited to 'crypto/stack')
-rw-r--r-- | crypto/stack/stack.c | 2 | ||||
-rw-r--r-- | crypto/stack/stack.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/crypto/stack/stack.c b/crypto/stack/stack.c index 3e2f4d8786..8ab4302c2e 100644 --- a/crypto/stack/stack.c +++ b/crypto/stack/stack.c @@ -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; diff --git a/crypto/stack/stack.h b/crypto/stack/stack.h index a6665f3b30..0cc3b44cc0 100644 --- a/crypto/stack/stack.h +++ b/crypto/stack/stack.h @@ -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 *); |