test/evp_test.c:1029: error: INTEGER_OVERFLOW_L1
  (0 - [1, +oo]):unsigned64 by call to `EVP_CipherUpdate`.
Showing all 10 steps of the trace


test/evp_test.c:882:1: Parameter `t->data->plaintext_len`
880.   }
881.   
882. > static int cipher_test_enc(struct evp_test *t, int enc,
883.                              size_t out_misalign, size_t inp_misalign, int frag)
884.   {

test/evp_test.c:898:9: Assignment
896.       if (enc) {
897.           in = cdat->plaintext;
898.           in_len = cdat->plaintext_len;
               ^
899.           out = cdat->ciphertext;
900.           out_len = cdat->ciphertext_len;

test/evp_test.c:1029:18: Call
1027.           }
1028.           if (in_len > 2) {
1029.               if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
                         ^
1030.                                     in + donelen, in_len - 2))
1031.                   goto err;

crypto/evp/evp_enc.c:205:1: Parameter `inl`
  203.   }
  204.   
  205. > int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
  206.                        const unsigned char *in, int inl)
  207.   {

crypto/evp/evp_enc.c:209:16: Call
  207.   {
  208.       if (ctx->encrypt)
  209.           return EVP_EncryptUpdate(ctx, out, outl, in, inl);
                        ^
  210.       else
  211.           return EVP_DecryptUpdate(ctx, out, outl, in, inl);

crypto/evp/evp_enc.c:293:1: Parameter `inl`
    291.   }
    292.   
    293. > int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
    294.                         const unsigned char *in, int inl)
    295.   {

crypto/evp/evp_enc.c:302:24: Call
    300.       if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) {
    301.           /* If block size > 1 then the cipher will have to do this check */
    302.           if (bl == 1 && is_partially_overlapping(out, in, inl)) {
                                  ^
    303.               EVPerr(EVP_F_EVP_ENCRYPTUPDATE, EVP_R_PARTIALLY_OVERLAPPING);
    304.               return 0;

crypto/evp/evp_enc.c:279:1: <RHS trace>
277.   #endif
278.   
279. > int is_partially_overlapping(const void *ptr1, const void *ptr2, int len)
280.   {
281.       PTRDIFF_T diff = (PTRDIFF_T)ptr1-(PTRDIFF_T)ptr2;

crypto/evp/evp_enc.c:279:1: Parameter `len`
      277.   #endif
      278.   
      279. > int is_partially_overlapping(const void *ptr1, const void *ptr2, int len)
      280.   {
      281.       PTRDIFF_T diff = (PTRDIFF_T)ptr1-(PTRDIFF_T)ptr2;

crypto/evp/evp_enc.c:288:50: Binary operation: (0 - [1, +oo]):unsigned64 by call to `EVP_CipherUpdate` 
      286.        */
      287.       int overlapped = (len > 0) & (diff != 0) & ((diff < (PTRDIFF_T)len) |
      288.                                                   (diff > (0 - (PTRDIFF_T)len)));
                                                              ^
      289.       assert(!overlapped);
      290.       return overlapped;
