diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/a_dup.c')
-rw-r--r-- | src/lib/libcrypto/asn1/a_dup.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/libcrypto/asn1/a_dup.c b/src/lib/libcrypto/asn1/a_dup.c index 199d50f521..58a017884c 100644 --- a/src/lib/libcrypto/asn1/a_dup.c +++ b/src/lib/libcrypto/asn1/a_dup.c | |||
@@ -62,23 +62,22 @@ | |||
62 | 62 | ||
63 | #ifndef NO_OLD_ASN1 | 63 | #ifndef NO_OLD_ASN1 |
64 | 64 | ||
65 | void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x) | 65 | char *ASN1_dup(int (*i2d)(), char *(*d2i)(), char *x) |
66 | { | 66 | { |
67 | unsigned char *b,*p; | 67 | unsigned char *b,*p; |
68 | const unsigned char *p2; | 68 | long i; |
69 | int i; | ||
70 | char *ret; | 69 | char *ret; |
71 | 70 | ||
72 | if (x == NULL) return(NULL); | 71 | if (x == NULL) return(NULL); |
73 | 72 | ||
74 | i=i2d(x,NULL); | 73 | i=(long)i2d(x,NULL); |
75 | b=OPENSSL_malloc(i+10); | 74 | b=(unsigned char *)OPENSSL_malloc((unsigned int)i+10); |
76 | if (b == NULL) | 75 | if (b == NULL) |
77 | { ASN1err(ASN1_F_ASN1_DUP,ERR_R_MALLOC_FAILURE); return(NULL); } | 76 | { ASN1err(ASN1_F_ASN1_DUP,ERR_R_MALLOC_FAILURE); return(NULL); } |
78 | p= b; | 77 | p= b; |
79 | i=i2d(x,&p); | 78 | i=i2d(x,&p); |
80 | p2= b; | 79 | p= b; |
81 | ret=d2i(NULL,&p2,i); | 80 | ret=d2i(NULL,&p,i); |
82 | OPENSSL_free(b); | 81 | OPENSSL_free(b); |
83 | return(ret); | 82 | return(ret); |
84 | } | 83 | } |
@@ -92,8 +91,7 @@ void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x) | |||
92 | 91 | ||
93 | void *ASN1_item_dup(const ASN1_ITEM *it, void *x) | 92 | void *ASN1_item_dup(const ASN1_ITEM *it, void *x) |
94 | { | 93 | { |
95 | unsigned char *b = NULL; | 94 | unsigned char *b = NULL, *p; |
96 | const unsigned char *p; | ||
97 | long i; | 95 | long i; |
98 | void *ret; | 96 | void *ret; |
99 | 97 | ||
@@ -101,7 +99,7 @@ void *ASN1_item_dup(const ASN1_ITEM *it, void *x) | |||
101 | 99 | ||
102 | i=ASN1_item_i2d(x,&b,it); | 100 | i=ASN1_item_i2d(x,&b,it); |
103 | if (b == NULL) | 101 | if (b == NULL) |
104 | { ASN1err(ASN1_F_ASN1_ITEM_DUP,ERR_R_MALLOC_FAILURE); return(NULL); } | 102 | { ASN1err(ASN1_F_ASN1_DUP,ERR_R_MALLOC_FAILURE); return(NULL); } |
105 | p= b; | 103 | p= b; |
106 | ret=ASN1_item_d2i(NULL,&p,i, it); | 104 | ret=ASN1_item_d2i(NULL,&p,i, it); |
107 | OPENSSL_free(b); | 105 | OPENSSL_free(b); |