Commit e1246e1a authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Submitted by: Julia Lawall <julia@diku.dk>

The functions ENGINE_ctrl(), OPENSSL_isservice(),
CMS_get1_RecipientRequest() and RAND_bytes() can return <=0 on error fix
so the return code is checked correctly.
parent df0b451d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -344,7 +344,7 @@ int cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)

	/* Get original receipt request details */

	if (!CMS_get1_ReceiptRequest(osi, &rr))
	if (CMS_get1_ReceiptRequest(osi, &rr) <= 0)
		{
		CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_RECEIPT_REQUEST);
		goto err;
@@ -385,7 +385,7 @@ ASN1_OCTET_STRING *cms_encode_Receipt(CMS_SignerInfo *si)

	/* Get original receipt request details */

	if (!CMS_get1_ReceiptRequest(si, &rr))
	if (CMS_get1_ReceiptRequest(si, &rr) <= 0)
		{
		CMSerr(CMS_F_CMS_ENCODE_RECEIPT, CMS_R_NO_RECEIPT_REQUEST);
		goto err;
+1 −1
Original line number Diff line number Diff line
@@ -513,7 +513,7 @@ void OPENSSL_showfatal (const char *fmta,...)

#if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333
    /* this -------------v--- guards NT-specific calls */
    if (GetVersion() < 0x80000000 && OPENSSL_isservice())
    if (GetVersion() < 0x80000000 && OPENSSL_isservice() > 0)
    {	HANDLE h = RegisterEventSource(0,_T("OPENSSL"));
	const TCHAR *pmsg=buf;
	ReportEvent(h,EVENTLOG_ERROR_TYPE,0,0,0,1,0,&pmsg,0);
+4 −4
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,
		}
	/* Force the result of the control command to 0 or 1, for the reasons
	 * mentioned before. */
        if (ENGINE_ctrl(e, num, i, p, f))
        if (ENGINE_ctrl(e, num, i, p, f) > 0)
                return 1;
        return 0;
        }
@@ -345,7 +345,7 @@ int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg,
		 * usage of these commands is consistent across applications and
		 * that certain applications don't understand it one way, and
		 * others another. */
		if(ENGINE_ctrl(e, num, 0, (void *)arg, NULL))
		if(ENGINE_ctrl(e, num, 0, (void *)arg, NULL) > 0)
			return 1;
		return 0;
		}
@@ -360,7 +360,7 @@ int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg,
	if(flags & ENGINE_CMD_FLAG_STRING)
		{
		/* Same explanation as above */
		if(ENGINE_ctrl(e, num, 0, (void *)arg, NULL))
		if(ENGINE_ctrl(e, num, 0, (void *)arg, NULL) > 0)
			return 1;
		return 0;
		}
@@ -383,7 +383,7 @@ int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg,
		}
	/* Force the result of the control command to 0 or 1, for the reasons
	 * mentioned before. */
	if(ENGINE_ctrl(e, num, l, NULL, NULL))
	if(ENGINE_ctrl(e, num, l, NULL, NULL) > 0)
		return 1;
	return 0;
	}
+1 −1
Original line number Diff line number Diff line
@@ -217,7 +217,7 @@ int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM,
		   		ERR_R_MALLOC_FAILURE);
			goto err;
			}
		if (!RAND_bytes(salt, sLen))
		if (RAND_bytes(salt, sLen) <= 0)
			goto err;
		}
	maskedDBLen = emLen - hLen - 1;
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ int dtls1_enc(SSL *s, int send)
					__FILE__, __LINE__);
			else if ( EVP_CIPHER_block_size(ds->cipher) > 1)
				{
				if (!RAND_bytes(rec->input, EVP_CIPHER_block_size(ds->cipher)))
				if (RAND_bytes(rec->input, EVP_CIPHER_block_size(ds->cipher)) <= 0)
					return -1;
				}
			}