mirror of https://github.com/openssl/openssl.git
				
				
				
			Silence -Wstringop-overflow warnings with gcc 14 on s390x
Compiling OpenSSL on s390x with gcc 14 (i.e. in Fedora 41) shows several -Wstringop-overflow warnings in providers/implementations/rands/drbg_ctr.c and test/params_api_test.c. Add explicit length checks to let the compiler know that it won't overrun the buffer. This also silences the warnings. Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com> Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/27710)
This commit is contained in:
		
							parent
							
								
									2c74a8d1ef
								
							
						
					
					
						commit
						9a788281d9
					
				| 
						 | 
				
			
			@ -23,6 +23,7 @@
 | 
			
		|||
#include "crypto/evp.h"
 | 
			
		||||
#include "crypto/evp/evp_local.h"
 | 
			
		||||
#include "internal/provider.h"
 | 
			
		||||
#include "internal/common.h"
 | 
			
		||||
 | 
			
		||||
static OSSL_FUNC_rand_newctx_fn drbg_ctr_new_wrapper;
 | 
			
		||||
static OSSL_FUNC_rand_freectx_fn drbg_ctr_free;
 | 
			
		||||
| 
						 | 
				
			
			@ -85,6 +86,8 @@ static void ctr_XOR(PROV_DRBG_CTR *ctr, const unsigned char *in, size_t inlen)
 | 
			
		|||
     * are XORing. So just process however much input we have.
 | 
			
		||||
     */
 | 
			
		||||
    n = inlen < ctr->keylen ? inlen : ctr->keylen;
 | 
			
		||||
    if (!ossl_assert(n <= sizeof(ctr->K)))
 | 
			
		||||
        return;
 | 
			
		||||
    for (i = 0; i < n; i++)
 | 
			
		||||
        ctr->K[i] ^= in[i];
 | 
			
		||||
    if (inlen <= ctr->keylen)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,8 @@ static void le_copy(unsigned char *out, size_t outlen,
 | 
			
		|||
    } else {
 | 
			
		||||
        if (outlen < inlen)
 | 
			
		||||
            in = (const char *)in + inlen - outlen;
 | 
			
		||||
        if (!ossl_assert(outlen <= inlen))
 | 
			
		||||
            return;
 | 
			
		||||
        swap_copy(out, in, outlen);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue