Skip to content

Commit ae55176

Browse files
author
Ben Laurie
committed
Fix some warnings caused by __owur. Temporarily (I hope) remove the more
aspirational __owur annotations.
1 parent fe06864 commit ae55176

File tree

12 files changed

+66
-51
lines changed

12 files changed

+66
-51
lines changed

Configure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ my %table=(
170170
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
171171
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
172172
"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe::(unknown)::::::",
173+
"debug-ben-macos", "cc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch i386 -O3 -DL_ENDIAN -g3 -pipe::(unknown)::::::",
173174
"debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::",
174175
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
175176
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",

apps/enc.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -549,9 +549,13 @@ int MAIN(int argc, char **argv)
549549
sptr = salt;
550550
}
551551

552-
EVP_BytesToKey(cipher,dgst,sptr,
553-
(unsigned char *)str,
554-
strlen(str),1,key,iv);
552+
if (!EVP_BytesToKey(cipher,dgst,sptr,
553+
(unsigned char *)str,
554+
strlen(str),1,key,iv))
555+
{
556+
BIO_printf(bio_err, "EVP_BytesToKey failed\n");
557+
goto end;
558+
}
555559
/* zero the complete buffer or the string
556560
* passed from the command line
557561
* bug picked up by

apps/ts.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,8 @@ static int create_digest(BIO *input, char *digest, const EVP_MD *md,
618618
{
619619
EVP_DigestUpdate(&md_ctx, buffer, length);
620620
}
621-
EVP_DigestFinal(&md_ctx, *md_value, NULL);
621+
if (!EVP_DigestFinal(&md_ctx, *md_value, NULL))
622+
return 0;
622623
}
623624
else
624625
{

crypto/cms/cms_pwri.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -239,21 +239,22 @@ static int kek_unwrap_key(unsigned char *out, size_t *outlen,
239239
}
240240
tmp = OPENSSL_malloc(inlen);
241241
/* setup IV by decrypting last two blocks */
242-
EVP_DecryptUpdate(ctx, tmp + inlen - 2 * blocklen, &outl,
243-
in + inlen - 2 * blocklen, blocklen * 2);
242+
if (!EVP_DecryptUpdate(ctx, tmp + inlen - 2 * blocklen, &outl,
243+
in + inlen - 2 * blocklen, blocklen * 2)
244244
/* Do a decrypt of last decrypted block to set IV to correct value
245245
* output it to start of buffer so we don't corrupt decrypted block
246246
* this works because buffer is at least two block lengths long.
247247
*/
248-
EVP_DecryptUpdate(ctx, tmp, &outl,
249-
tmp + inlen - blocklen, blocklen);
248+
|| !EVP_DecryptUpdate(ctx, tmp, &outl,
249+
tmp + inlen - blocklen, blocklen)
250250
/* Can now decrypt first n - 1 blocks */
251-
EVP_DecryptUpdate(ctx, tmp, &outl, in, inlen - blocklen);
251+
|| !EVP_DecryptUpdate(ctx, tmp, &outl, in, inlen - blocklen)
252252

253253
/* Reset IV to original value */
254-
EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL);
254+
|| !EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL)
255255
/* Decrypt again */
256-
EVP_DecryptUpdate(ctx, tmp, &outl, tmp, inlen);
256+
|| !EVP_DecryptUpdate(ctx, tmp, &outl, tmp, inlen))
257+
goto err;
257258
/* Check check bytes */
258259
if (((tmp[1] ^ tmp[4]) & (tmp[2] ^ tmp[5]) & (tmp[3] ^ tmp[6])) != 0xff)
259260
{
@@ -308,8 +309,9 @@ static int kek_wrap_key(unsigned char *out, size_t *outlen,
308309
if (olen > inlen + 4)
309310
RAND_pseudo_bytes(out + 4 + inlen, olen - 4 - inlen);
310311
/* Encrypt twice */
311-
EVP_EncryptUpdate(ctx, out, &dummy, out, olen);
312-
EVP_EncryptUpdate(ctx, out, &dummy, out, olen);
312+
if (!EVP_EncryptUpdate(ctx, out, &dummy, out, olen)
313+
|| !EVP_EncryptUpdate(ctx, out, &dummy, out, olen))
314+
return 0;
313315
}
314316

315317
*outlen = olen;

crypto/ecdsa/ecdsatest.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,10 @@ int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)
196196

197197
EVP_MD_CTX_init(&md_ctx);
198198
/* get the message digest */
199-
EVP_DigestInit(&md_ctx, EVP_ecdsa());
200-
EVP_DigestUpdate(&md_ctx, (const void*)message, 3);
201-
EVP_DigestFinal(&md_ctx, digest, &dgst_len);
199+
if (!EVP_DigestInit(&md_ctx, EVP_ecdsa())
200+
|| !EVP_DigestUpdate(&md_ctx, (const void*)message, 3)
201+
|| !EVP_DigestFinal(&md_ctx, digest, &dgst_len))
202+
goto x962_int_err;
202203

203204
BIO_printf(out, "testing %s: ", OBJ_nid2sn(nid));
204205
/* create the key */

crypto/evp/evp.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ void BIO_set_md(BIO *,const EVP_MD *md);
559559
#define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL)
560560
#define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp)
561561

562-
__owur int EVP_Cipher(EVP_CIPHER_CTX *c,
562+
/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c,
563563
unsigned char *out,
564564
const unsigned char *in,
565565
unsigned int inl);
@@ -577,19 +577,19 @@ void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
577577
int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
578578
EVP_MD_CTX *EVP_MD_CTX_create(void);
579579
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
580-
__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out,const EVP_MD_CTX *in);
580+
/*__owur*/ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out,const EVP_MD_CTX *in);
581581
void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
582582
void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
583583
int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx,int flags);
584-
__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
585-
__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
584+
/*__owur*/ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
585+
/*__owur*/ int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,
586586
size_t cnt);
587-
__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
588-
__owur int EVP_Digest(const void *data, size_t count,
587+
/*__owur*/ int EVP_DigestFinal_ex(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
588+
/*__owur*/ int EVP_Digest(const void *data, size_t count,
589589
unsigned char *md, unsigned int *size, const EVP_MD *type, ENGINE *impl);
590590

591-
__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out,const EVP_MD_CTX *in);
592-
__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
591+
/*__owur*/ int EVP_MD_CTX_copy(EVP_MD_CTX *out,const EVP_MD_CTX *in);
592+
/*__owur*/ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
593593
__owur int EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
594594

595595
int EVP_read_pw_string(char *buf,int length,const char *prompt,int verify);
@@ -607,26 +607,26 @@ int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx,int flags);
607607

608608
__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
609609
const unsigned char *key, const unsigned char *iv);
610-
__owur int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
610+
/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
611611
const unsigned char *key, const unsigned char *iv);
612-
__owur int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
612+
/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
613613
int *outl, const unsigned char *in, int inl);
614-
__owur int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
615-
__owur int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
614+
/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
615+
/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
616616

617617
__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
618618
const unsigned char *key, const unsigned char *iv);
619-
__owur int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
619+
/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
620620
const unsigned char *key, const unsigned char *iv);
621-
__owur int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
621+
/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
622622
int *outl, const unsigned char *in, int inl);
623623
__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
624-
__owur int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
624+
/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
625625

626626
__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher,
627627
const unsigned char *key,const unsigned char *iv,
628628
int enc);
629-
__owur int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
629+
/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
630630
const unsigned char *key,const unsigned char *iv,
631631
int enc);
632632
__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
@@ -640,7 +640,7 @@ __owur int EVP_SignFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s,
640640
__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx,const unsigned char *sigbuf,
641641
unsigned int siglen,EVP_PKEY *pkey);
642642

643-
__owur int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
643+
/*__owur*/ int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
644644
const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
645645
__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx,
646646
unsigned char *sigret, size_t *siglen);

crypto/hmac/hmac.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ void HMAC_CTX_cleanup(HMAC_CTX *ctx);
9292

9393
__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
9494
const EVP_MD *md); /* deprecated */
95-
__owur int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
95+
/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
9696
const EVP_MD *md, ENGINE *impl);
97-
__owur int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
98-
__owur int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
97+
/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
98+
/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
9999
unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
100100
const unsigned char *d, size_t n, unsigned char *md,
101101
unsigned int *md_len);

crypto/rc4/rc4test.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ int main(int argc, char *argv[])
121121
RC4_KEY key;
122122
unsigned char obuf[512];
123123

124-
#if !defined(OPENSSL_PIC)
124+
#if !defined(OPENSSL_PIC) && !defined(__MACH__)
125125
OPENSSL_cpuid_setup();
126126
#endif
127127

crypto/x509/x509_cmp.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,14 @@ unsigned long X509_NAME_hash_old(X509_NAME *x)
248248
i2d_X509_NAME(x,NULL);
249249
EVP_MD_CTX_init(&md_ctx);
250250
EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
251-
EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL);
252-
EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length);
253-
EVP_DigestFinal_ex(&md_ctx,md,NULL);
251+
if (EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL)
252+
&& EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length)
253+
&& EVP_DigestFinal_ex(&md_ctx,md,NULL))
254+
ret=(((unsigned long)md[0] )|((unsigned long)md[1]<<8L)|
255+
((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L)
256+
)&0xffffffffL;
254257
EVP_MD_CTX_cleanup(&md_ctx);
255258

256-
ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)|
257-
((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L)
258-
)&0xffffffffL;
259259
return(ret);
260260
}
261261
#endif

doc/crypto/EVP_BytesToKey.pod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ the IV.
5555

5656
=head1 RETURN VALUES
5757

58-
EVP_BytesToKey() returns the size of the derived key in bytes.
58+
EVP_BytesToKey() returns the size of the derived key in bytes, or 0 on error.
5959

6060
=head1 SEE ALSO
6161

0 commit comments

Comments
 (0)