commit 98b7444a7b122498e5b6d693c4503b1702763307
parent 9b585fd066c238485b161b7664901e9d23ecf56b
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 6 Oct 2017 21:41:41 +0200
handle hypothetical failure of plugin not found
Diffstat:
1 file changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/exchange/taler-exchange-aggregator.c b/src/exchange/taler-exchange-aggregator.c
@@ -1620,6 +1620,19 @@ wire_prepare_cb (void *cls,
"Starting wire transfer %llu\n",
(unsigned long long) rowid);
wpd->wp = find_plugin (wire_method);
+ if (NULL == wpd->wp)
+ {
+ /* Should really never happen here, as when we get
+ here the plugin should be in the cache. */
+ GNUNET_break (0);
+ db_plugin->rollback (db_plugin->cls,
+ wpd->session);
+ global_ret = GNUNET_SYSERR;
+ GNUNET_SCHEDULER_shutdown ();
+ GNUNET_free (wpd);
+ wpd = NULL;
+ return;
+ }
wpd->eh = wpd->wp->wire_plugin->execute_wire_transfer (wpd->wp->wire_plugin->cls,
buf,
buf_size,