fix https://gnunet.org/bugs/view.php?id=4904
authorSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>
Sun, 24 Jun 2018 16:48:33 +0000 (18:48 +0200)
committerSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>
Sun, 24 Jun 2018 16:48:33 +0000 (18:48 +0200)
src/ats/ats_api_performance.c
src/ats/plugin_ats_proportional.c
src/datastore/plugin_datastore_sqlite.c
src/fs/fs_api.c
src/include/gnunet_common.h
src/testbed/testbed_api_topology.c

index caa1da03407fec3ffddace008facbb73e621459a..0c196ea436915df3e7538dd9867dae5a17f685e3 100644 (file)
@@ -849,7 +849,7 @@ GNUNET_ATS_performance_change_preference (struct GNUNET_ATS_PerformanceHandle *p
   count = 0;
   va_start(ap, peer);
   while (GNUNET_ATS_PREFERENCE_END !=
-         (kind = va_arg (ap, enum GNUNET_ATS_PreferenceKind) ))
+         (kind = GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
   {
     switch (kind)
     {
@@ -875,7 +875,7 @@ GNUNET_ATS_performance_change_preference (struct GNUNET_ATS_PerformanceHandle *p
   count = 0;
   va_start(ap, peer);
   while (GNUNET_ATS_PREFERENCE_END != (kind =
-      va_arg (ap, enum GNUNET_ATS_PreferenceKind) ))
+      GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
   {
     pi[count].preference_kind = htonl (kind);
     switch (kind)
@@ -927,7 +927,7 @@ GNUNET_ATS_performance_give_feedback (struct GNUNET_ATS_PerformanceHandle *ph,
   count = 0;
   va_start(ap, scope);
   while (GNUNET_ATS_PREFERENCE_END !=
-         (kind = va_arg (ap, enum GNUNET_ATS_PreferenceKind) ))
+         (kind = GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
   {
     switch (kind)
     {
@@ -954,7 +954,7 @@ GNUNET_ATS_performance_give_feedback (struct GNUNET_ATS_PerformanceHandle *ph,
   count = 0;
   va_start(ap, scope);
   while (GNUNET_ATS_PREFERENCE_END != (kind =
-      va_arg (ap, enum GNUNET_ATS_PreferenceKind) ))
+      GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
   {
     pi[count].preference_kind = htonl (kind);
     switch (kind)
index b4ca70dc79698c4e461ecbb5ab29cdd3f22fa236..08fb7a9a755334d677c3ba8c03f0ac4e90a3fb73 100644 (file)
@@ -1005,7 +1005,7 @@ GAS_proportional_address_property_changed (void *solver,
 static void
 GAS_proportional_address_add (void *solver,
                               struct ATS_Address *address,
-                              enum GNUNET_ATS_Network_Type network)
+                              uint32_t network)
 {
   struct GAS_PROPORTIONAL_Handle *s = solver;
   struct Network *net;
index 80960c676c1b7fe81e20ec973b499b08d5b2e432..fc1706400395e2b168f594a78569fcea9d9db798 100644 (file)
@@ -855,9 +855,10 @@ sqlite_plugin_get_zero_anonymity (void *cls,
                                   void *proc_cls)
 {
   struct Plugin *plugin = cls;
+  uint32_t type32 = type;
   struct GNUNET_SQ_QueryParam params[] = {
     GNUNET_SQ_query_param_uint64 (&next_uid),
-    GNUNET_SQ_query_param_uint32 (&type),
+    GNUNET_SQ_query_param_uint32 (&type32),
     GNUNET_SQ_query_param_end
   };
 
index 0857110b1c8040dc157a87275ba2b192e7faa4d7..9b783ba93798a74ad5c259f6ca944e8898ab8daf 100644 (file)
@@ -3112,7 +3112,7 @@ GNUNET_FS_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
   ret->max_parallel_requests = DEFAULT_MAX_PARALLEL_REQUESTS;
   ret->avg_block_latency = GNUNET_TIME_UNIT_MINUTES;    /* conservative starting point */
   va_start (ap, flags);
-  while (GNUNET_FS_OPTIONS_END != (opt = va_arg (ap, enum GNUNET_FS_OPTIONS)))
+  while (GNUNET_FS_OPTIONS_END != (opt = GNUNET_VA_ARG_ENUM (ap,GNUNET_FS_OPTIONS)))
   {
     switch (opt)
     {
index ec91b35ade50e94196a72a5611d18634dbf12970..b4bf5b0aa17e80525552a329b4ad1701fdb3781d 100644 (file)
@@ -24,6 +24,7 @@
  *
  * @author Christian Grothoff
  * @author Nils Durner
+ * @author Martin Schanzenbach
  *
  * @defgroup logging Logging
  * @see [Documentation](https://gnunet.org/logging)
@@ -111,6 +112,11 @@ extern "C"
 #endif
 #endif
 
+/**
+ * wrap va_arg for enums
+ */
+#define GNUNET_VA_ARG_ENUM(va,X) ((enum X) va_arg (va, int))
+
 /**
  * @ingroup logging
  * define #GNUNET_EXTRA_LOGGING if using this header outside the GNUnet source
index 51a8b979a5a9085725e49bd43243f82ff0216ed2..114055a07537b98ef30eee8fc0cb6eb7c272367d 100644 (file)
@@ -1391,7 +1391,7 @@ GNUNET_TESTBED_overlay_configure_topology_va (void *op_cls,
   }
   do
   {
-    secondary_option = va_arg (va, enum GNUNET_TESTBED_TopologyOption);
+    secondary_option = GNUNET_VA_ARG_ENUM (va, GNUNET_TESTBED_TopologyOption);
 
     switch (secondary_option)
     {
@@ -1552,7 +1552,7 @@ GNUNET_TESTBED_underlay_construct_ (int num_peers,
   tc.type = TOPOLOGYCONTEXT_TYPE_UNDERLAY;
   underlay = &tc.u.underlay;
   va_start (vargs, cls);
-  topology = va_arg (vargs, enum GNUNET_TESTBED_TopologyOption);
+  topology = GNUNET_VA_ARG_ENUM (vargs, GNUNET_TESTBED_TopologyOption);
   switch (topology)
   {
   case GNUNET_TESTBED_TOPOLOGY_LINE: