diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/exchange/taler-exchange-aggregator.c | 3 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_kyc-wallet.c | 3 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_purses_merge.c | 15 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_reserves_close.c | 15 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_reserves_purse.c | 16 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_withdraw.c | 14 | ||||
| -rw-r--r-- | src/include/taler_kyclogic_lib.h | 2 | ||||
| -rw-r--r-- | src/kyclogic/kyclogic_api.c | 2 | 
8 files changed, 57 insertions, 13 deletions
diff --git a/src/exchange/taler-exchange-aggregator.c b/src/exchange/taler-exchange-aggregator.c index d196ff26..7244c5ec 100644 --- a/src/exchange/taler-exchange-aggregator.c +++ b/src/exchange/taler-exchange-aggregator.c @@ -496,7 +496,7 @@ return_relevant_amounts (void *cls,  static bool  kyc_satisfied (struct AggregationUnit *au_active)  { -  const char *requirement; +  char *requirement;    enum GNUNET_DB_QueryStatus qs;    qs = TALER_KYCLOGIC_kyc_test_required ( @@ -535,6 +535,7 @@ kyc_satisfied (struct AggregationUnit *au_active)                  "Legitimization process %llu started\n",                  (unsigned long long) au_active->requirement_row);    } +  GNUNET_free (requirement);    return false;  } diff --git a/src/exchange/taler-exchange-httpd_kyc-wallet.c b/src/exchange/taler-exchange-httpd_kyc-wallet.c index 515d84b6..e56204ef 100644 --- a/src/exchange/taler-exchange-httpd_kyc-wallet.c +++ b/src/exchange/taler-exchange-httpd_kyc-wallet.c @@ -54,7 +54,7 @@ struct KycRequestContext    /**     * Name of the required check.     */ -  const char *required; +  char *required;  }; @@ -237,6 +237,7 @@ TEH_handler_kyc_wallet (        NULL,        0);    } +  GNUNET_free (kyc.required);    return TEH_RESPONSE_reply_kyc_required (rc->connection,                                            &krc.h_payto,                                            &krc.kyc); diff --git a/src/exchange/taler-exchange-httpd_purses_merge.c b/src/exchange/taler-exchange-httpd_purses_merge.c index 174131a3..d246263f 100644 --- a/src/exchange/taler-exchange-httpd_purses_merge.c +++ b/src/exchange/taler-exchange-httpd_purses_merge.c @@ -280,7 +280,7 @@ merge_transaction (void *cls,    bool in_conflict = true;    bool no_balance = true;    bool no_partner = true; -  const char *required; +  char *required;    qs = TALER_KYCLOGIC_kyc_test_required (      TALER_KYCLOGIC_KYC_TRIGGER_P2P_RECEIVE, @@ -305,11 +305,22 @@ merge_transaction (void *cls,    if (NULL != required)    {      pcc->kyc.ok = false; -    return TEH_plugin->insert_kyc_requirement_for_account ( +    qs = TEH_plugin->insert_kyc_requirement_for_account (        TEH_plugin->cls,        required,        &pcc->h_payto,        &pcc->kyc.requirement_row); +    GNUNET_free (required); +    if (GNUNET_DB_STATUS_HARD_ERROR == qs) +    { +      GNUNET_break (0); +      *mhd_ret +        = TALER_MHD_reply_with_error (connection, +                                      MHD_HTTP_INTERNAL_SERVER_ERROR, +                                      TALER_EC_GENERIC_DB_STORE_FAILED, +                                      "insert_kyc_requirement_for_account"); +    } +    return qs;    }    pcc->kyc.ok = true;    qs = TEH_plugin->do_purse_merge ( diff --git a/src/exchange/taler-exchange-httpd_reserves_close.c b/src/exchange/taler-exchange-httpd_reserves_close.c index 29c08ff7..760f705c 100644 --- a/src/exchange/taler-exchange-httpd_reserves_close.c +++ b/src/exchange/taler-exchange-httpd_reserves_close.c @@ -228,7 +228,7 @@ reserve_close_transaction (void *cls,      /* KYC check may be needed: we're not returning         the money to the account that funded the reserve         in the first place. */ -    const char *kyc_needed; +    char *kyc_needed;      TALER_payto_hash (rcc->payto_uri,                        &rcc->kyc_payto); @@ -268,11 +268,22 @@ reserve_close_transaction (void *cls,      if (NULL != kyc_needed)      {        rcc->kyc.ok = false; -      return TEH_plugin->insert_kyc_requirement_for_account ( +      qs = TEH_plugin->insert_kyc_requirement_for_account (          TEH_plugin->cls,          kyc_needed,          &rcc->kyc_payto,          &rcc->kyc.requirement_row); +      GNUNET_free (kyc_needed); +      if (GNUNET_DB_STATUS_HARD_ERROR == qs) +      { +        GNUNET_break (0); +        *mhd_ret +          = TALER_MHD_reply_with_error (connection, +                                        MHD_HTTP_INTERNAL_SERVER_ERROR, +                                        TALER_EC_GENERIC_DB_STORE_FAILED, +                                        "insert_kyc_requirement_for_account"); +      } +      return qs;      }    } diff --git a/src/exchange/taler-exchange-httpd_reserves_purse.c b/src/exchange/taler-exchange-httpd_reserves_purse.c index d62c1db9..5e39f810 100644 --- a/src/exchange/taler-exchange-httpd_reserves_purse.c +++ b/src/exchange/taler-exchange-httpd_reserves_purse.c @@ -189,8 +189,7 @@ purse_transaction (void *cls,  {    struct ReservePurseContext *rpc = cls;    enum GNUNET_DB_QueryStatus qs; - -  const char *required; +  char *required;    qs = TALER_KYCLOGIC_kyc_test_required (      TALER_KYCLOGIC_KYC_TRIGGER_P2P_RECEIVE, @@ -215,11 +214,22 @@ purse_transaction (void *cls,    if (NULL != required)    {      rpc->kyc.ok = false; -    return TEH_plugin->insert_kyc_requirement_for_account ( +    qs = TEH_plugin->insert_kyc_requirement_for_account (        TEH_plugin->cls,        required,        &rpc->h_payto,        &rpc->kyc.requirement_row); +    GNUNET_free (required); +    if (GNUNET_DB_STATUS_HARD_ERROR == qs) +    { +      GNUNET_break (0); +      *mhd_ret +        = TALER_MHD_reply_with_error (connection, +                                      MHD_HTTP_INTERNAL_SERVER_ERROR, +                                      TALER_EC_GENERIC_DB_STORE_FAILED, +                                      "insert_kyc_requirement_for_account"); +    } +    return qs;    }    rpc->kyc.ok = true; diff --git a/src/exchange/taler-exchange-httpd_withdraw.c b/src/exchange/taler-exchange-httpd_withdraw.c index 40cefc7d..9560e7dc 100644 --- a/src/exchange/taler-exchange-httpd_withdraw.c +++ b/src/exchange/taler-exchange-httpd_withdraw.c @@ -288,7 +288,7 @@ withdraw_transaction (void *cls,       is required as the merge already did that. */    if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)    { -    const char *kyc_required; +    char *kyc_required;      qs = TALER_KYCLOGIC_kyc_test_required (        TALER_KYCLOGIC_KYC_TRIGGER_WITHDRAW, @@ -314,11 +314,21 @@ withdraw_transaction (void *cls,      {        /* insert KYC requirement into DB! */        wc->kyc.ok = false; -      return TEH_plugin->insert_kyc_requirement_for_account ( +      qs = TEH_plugin->insert_kyc_requirement_for_account (          TEH_plugin->cls,          kyc_required,          &wc->h_account_payto,          &wc->kyc.requirement_row); +      GNUNET_free (kyc_required); +      if (GNUNET_DB_STATUS_HARD_ERROR == qs) +      { +        GNUNET_break (0); +        *mhd_ret = TALER_MHD_reply_with_error (connection, +                                               MHD_HTTP_INTERNAL_SERVER_ERROR, +                                               TALER_EC_GENERIC_DB_STORE_FAILED, +                                               "insert_kyc_requirement_for_account"); +      } +      return qs;      }    }    wc->kyc.ok = true; diff --git a/src/include/taler_kyclogic_lib.h b/src/include/taler_kyclogic_lib.h index 065f2561..98233b35 100644 --- a/src/include/taler_kyclogic_lib.h +++ b/src/include/taler_kyclogic_lib.h @@ -225,7 +225,7 @@ TALER_KYCLOGIC_kyc_test_required (enum TALER_KYCLOGIC_KycTriggerEvent event,                                    void *ki_cls,                                    TALER_KYCLOGIC_KycAmountIterator ai,                                    void *ai_cls, -                                  const char **required); +                                  char **required);  /** diff --git a/src/kyclogic/kyclogic_api.c b/src/kyclogic/kyclogic_api.c index b82a6c06..e1aff020 100644 --- a/src/kyclogic/kyclogic_api.c +++ b/src/kyclogic/kyclogic_api.c @@ -1064,7 +1064,7 @@ TALER_KYCLOGIC_kyc_test_required (enum TALER_KYCLOGIC_KycTriggerEvent event,                                    void *ki_cls,                                    TALER_KYCLOGIC_KycAmountIterator ai,                                    void *ai_cls, -                                  const char **required) +                                  char **required)  {    struct TALER_KYCLOGIC_KycCheck *needed[num_kyc_checks];    unsigned int needed_cnt = 0;  | 
