diff options
author | David Barksdale <amatus@amat.us> | 2018-02-05 21:52:21 -0600 |
---|---|---|
committer | David Barksdale <amatus@amat.us> | 2018-02-05 21:52:21 -0600 |
commit | b673e9c3ed4a211b974bc602b893a427533566d7 (patch) | |
tree | e06ecf49866d309a7014dbcbd02f7f9bc2afcb01 /src/datastore | |
parent | 5c277f0ddb5d8335424157b861ab1003d4a66a63 (diff) |
fix datstore bind issue for real this time
Diffstat (limited to 'src/datastore')
-rw-r--r-- | src/datastore/plugin_datastore_sqlite.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c index 380238bb5f..4980f8109b 100644 --- a/src/datastore/plugin_datastore_sqlite.c +++ b/src/datastore/plugin_datastore_sqlite.c @@ -908,10 +908,19 @@ sqlite_plugin_get_key (void *cls, GNUNET_SQ_query_param_end }; + /* SQLite doesn't like it when you try to bind a parameter greater than the + * last numbered parameter, but unused parameters in the middle are OK. + */ if (! use_type) - memset (¶ms[3], 0, sizeof (struct GNUNET_SQ_QueryParam)); - if (! use_key) - memset (¶ms[2], 0, sizeof (struct GNUNET_SQ_QueryParam)); + { + params[3] = (struct GNUNET_SQ_QueryParam) GNUNET_SQ_query_param_end; + if (! use_key) + { + params[2] = (struct GNUNET_SQ_QueryParam) GNUNET_SQ_query_param_end; + if (! use_rvalue) + params[1] = (struct GNUNET_SQ_QueryParam) GNUNET_SQ_query_param_end; + } + } if (random) { rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, |