crypto/ec/ec_lib.c:302: error: BUFFER_OVERRUN_L3
  Offset: 0 Size: [0, 8388607] by call to `BN_is_odd`.
Showing all 6 steps of the trace


crypto/ec/ec_lib.c:286:14: Call
284.   
285.       if (order != NULL) {
286.           if (!BN_copy(group->order, order))
                    ^
287.               return 0;
288.       } else

crypto/bn/bn_lib.c:322:1: Parameter `*a->d`
  320.   }
  321.   
  322. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
  323.   {
  324.       bn_check_top(b);

crypto/ec/ec_lib.c:302:9: Call
300.        * |group->mont_data| will be NULL in this case.
301.        */
302.       if (BN_is_odd(group->order)) {
               ^
303.           return ec_precompute_mont_data(group);
304.       }

crypto/bn/bn_lib.c:865:1: <Length trace>
863.   }
864.   
865. > int BN_is_odd(const BIGNUM *a)
866.   {
867.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_lib.c:865:1: Parameter `*a->d`
  863.   }
  864.   
  865. > int BN_is_odd(const BIGNUM *a)
  866.   {
  867.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_lib.c:867:29: Array access: Offset: 0 Size: [0, 8388607] by call to `BN_is_odd` 
  865.   int BN_is_odd(const BIGNUM *a)
  866.   {
  867.       return (a->top > 0) && (a->d[0] & 1);
                                     ^
  868.   }
  869.   

int BN_is_odd(const BIGNUM *a)
{
    return (a->top > 0) && (a->d[0] & 1);
}
['int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,\n                           const BIGNUM *order, const BIGNUM *cofactor)\n{\n    if (generator == NULL) {\n        ECerr(EC_F_EC_GROUP_SET_GENERATOR, ERR_R_PASSED_NULL_PARAMETER);\n        return 0;\n    }\n    if (group->generator == NULL) {\n        group->generator = EC_POINT_new(group);\n        if (group->generator == NULL)\n            return 0;\n    }\n    if (!EC_POINT_copy(group->generator, generator))\n        return 0;\n    if (order != NULL) {\n        if (!BN_copy(group->order, order))\n            return 0;\n    } else\n        BN_zero(group->order);\n    if (cofactor != NULL) {\n        if (!BN_copy(group->cofactor, cofactor))\n            return 0;\n    } else\n        BN_zero(group->cofactor);\n    if (BN_is_odd(group->order)) {\n        return ec_precompute_mont_data(group);\n    }\n    BN_MONT_CTX_free(group->mont_data);\n    group->mont_data = NULL;\n    return 1;\n}', 'BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)\n{\n    bn_check_top(b);\n    if (a == b)\n        return a;\n    if (bn_wexpand(a, b->top) == NULL)\n        return NULL;\n    memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);\n    a->top = b->top;\n    a->neg = b->neg;\n    bn_check_top(a);\n    return a;\n}', 'int BN_is_odd(const BIGNUM *a)\n{\n    return (a->top > 0) && (a->d[0] & 1);\n}']