aboutsummaryrefslogtreecommitdiff
path: root/src/mint-tools/taler-mint-reservemod.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-05-15 17:24:27 +0200
committerChristian Grothoff <christian@grothoff.org>2015-05-15 17:24:27 +0200
commitd080e59e272e307b9ebc267f2c4dd2941cd79436 (patch)
treefceb6637439e4786d643f9235028f960cc9ab0e5 /src/mint-tools/taler-mint-reservemod.c
parent33f5242ac4105d8631d659447989cb718459b081 (diff)
resolve #3717
Diffstat (limited to 'src/mint-tools/taler-mint-reservemod.c')
-rw-r--r--src/mint-tools/taler-mint-reservemod.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/mint-tools/taler-mint-reservemod.c b/src/mint-tools/taler-mint-reservemod.c
index 8607c6dbf..645a2f32e 100644
--- a/src/mint-tools/taler-mint-reservemod.c
+++ b/src/mint-tools/taler-mint-reservemod.c
@@ -98,6 +98,9 @@ main (int argc, char *const *argv)
{
fprintf (stderr,
"Mint directory not given\n");
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (details);
+ GNUNET_free_non_null (reserve_pub_str);
return 1;
}
if ((NULL == reserve_pub_str) ||
@@ -109,6 +112,9 @@ main (int argc, char *const *argv)
{
fprintf (stderr,
"Parsing reserve key invalid\n");
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (details);
+ GNUNET_free_non_null (reserve_pub_str);
return 1;
}
if ( (NULL == add_str) ||
@@ -119,6 +125,9 @@ main (int argc, char *const *argv)
fprintf (stderr,
"Failed to parse currency amount `%s'\n",
add_str);
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (details);
+ GNUNET_free_non_null (reserve_pub_str);
return 1;
}
@@ -126,7 +135,9 @@ main (int argc, char *const *argv)
{
fprintf (stderr,
"No wiring details given (justification required)\n");
- return 1;
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (reserve_pub_str);
+ return 1;
}
cfg = TALER_config_load (mint_directory);
@@ -134,7 +145,10 @@ main (int argc, char *const *argv)
{
fprintf (stderr,
"Failed to load mint configuration\n");
- return 1;
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (details);
+ GNUNET_free_non_null (reserve_pub_str);
+ return 1;
}
ret = 1;
if (NULL ==
@@ -154,24 +168,32 @@ main (int argc, char *const *argv)
goto cleanup;
}
expiration = GNUNET_TIME_relative_to_absolute (RESERVE_EXPIRATION);
- if (GNUNET_OK !=
- plugin->reserves_in_insert (plugin->cls,
- session,
- &reserve_pub,
- &add_value,
- details,
- expiration))
+ ret = plugin->reserves_in_insert (plugin->cls,
+ session,
+ &reserve_pub,
+ &add_value,
+ details,
+ expiration);
+ if (GNUNET_SYSERR == ret)
{
fprintf (stderr,
"Failed to update reserve.\n");
goto cleanup;
}
+ if (GNUNET_NO == ret)
+ {
+ fprintf (stderr,
+ "Record exists, reserve not updated.\n");
+ }
ret = 0;
cleanup:
if (NULL != plugin)
TALER_MINTDB_plugin_unload (plugin);
if (NULL != cfg)
GNUNET_CONFIGURATION_destroy (cfg);
+ GNUNET_free_non_null (add_str);
+ GNUNET_free_non_null (details);
+ GNUNET_free_non_null (reserve_pub_str);
return ret;
}