crypto/ec/ec_lib.c:303: 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:285:14: Call
283.   
284.       if (order != NULL) {
285.           if (!BN_copy(group->order, order))
                    ^
286.               return 0;
287.       } else {

crypto/bn/bn_lib.c:281:1: Parameter `*a->d`
  279.   }
  280.   
  281. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
  282.   {
  283.       bn_check_top(b);

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

crypto/bn/bn_lib.c:881:1: <Length trace>
879.   }
880.   
881. > int BN_is_odd(const BIGNUM *a)
882.   {
883.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_lib.c:881:1: Parameter `*a->d`
  879.   }
  880.   
  881. > int BN_is_odd(const BIGNUM *a)
  882.   {
  883.       return (a->top > 0) && (a->d[0] & 1);

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

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    }\n    if (cofactor != NULL) {\n        if (!BN_copy(group->cofactor, cofactor))\n            return 0;\n    } else {\n        BN_zero(group->cofactor);\n    }\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    if (b->top > 0)\n        memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);\n    a->neg = b->neg;\n    a->top = b->top;\n    a->flags |= b->flags & BN_FLG_FIXED_TOP;\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}']