diff options
Diffstat (limited to 'src/sh_srp.c')
-rw-r--r-- | src/sh_srp.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/sh_srp.c b/src/sh_srp.c index ecc757c..ab6cbcf 100644 --- a/src/sh_srp.c +++ b/src/sh_srp.c @@ -47,14 +47,14 @@ int big_errno = BIG_OK; #define bignum MP_INT -inline +static int big_create (bignum * a) { mpz_init(a); return 0; } -inline +static int big_zerop (bignum * a) { mpz_t b; @@ -68,14 +68,14 @@ int big_zerop (bignum * a) return 1; } -inline +static int big_trunc (bignum * a, bignum * b, bignum * q, bignum *r) { mpz_tdiv_qr(q, r, a, b); return 0; } -inline +static int big_exptmod (bignum * a, bignum * b, bignum * c, bignum *d) { mpz_powm(d, a, b, c); @@ -118,7 +118,13 @@ char * big_string (bignum * a, int base) if (ptr) get_str_internal = ptr; else - { free(get_str_internal); get_str_internal = NULL; } + { + /* "If realloc() fails, the original block is left untouched; + * it is not freed or moved." */ + /* cppcheck-suppress doubleFree */ + free(get_str_internal); + get_str_internal = NULL; + } } if (get_str_internal == NULL) { @@ -135,34 +141,34 @@ char * big_string (bignum * a, int base) return get_str_internal; } -inline +static int big_add(bignum * a, bignum * b, bignum * c) { mpz_add(c, a, b); return 0; } -inline +static int big_sub(bignum * a, bignum * b, bignum * c) { mpz_sub(c, a, b); return 0; } -inline +static int big_mul(bignum * a, bignum * b, bignum * c) { mpz_mul(c, a, b); return 0; } -inline +static int big_greaterp(bignum * a, bignum * b) { return mpz_cmp(a, b) > 0; } -inline +static int big_set_big(bignum * a, bignum * b) { mpz_set(b, a); @@ -170,7 +176,7 @@ int big_set_big(bignum * a, bignum * b) } -inline +static int big_set_string(const char * str, int base, bignum * a) { mpz_set_str (a, str, base); |