aboutsummaryrefslogtreecommitdiff
path: root/src/gns/gnunet-service-gns_resolver.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-05-20 23:40:20 +0200
committerChristian Grothoff <christian@grothoff.org>2018-05-20 23:40:20 +0200
commitd080cb1ed80a0e528b2b755ee48ca18cb670175e (patch)
treed8c0edab6035e4d38138b303566e972fbf8b8c5f /src/gns/gnunet-service-gns_resolver.c
parent0a8c135eedab5213b31c21b3d4b800e5f0f6041f (diff)
downloadgnunet-d080cb1ed80a0e528b2b755ee48ca18cb670175e.tar.gz
gnunet-d080cb1ed80a0e528b2b755ee48ca18cb670175e.zip
check return values from GNSRECORD_record_serialize/size always
Diffstat (limited to 'src/gns/gnunet-service-gns_resolver.c')
-rw-r--r--src/gns/gnunet-service-gns_resolver.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c
index b66516363..8593e281e 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -280,7 +280,7 @@ struct VpnContext
280 /** 280 /**
281 * Number of bytes in @e rd_data. 281 * Number of bytes in @e rd_data.
282 */ 282 */
283 size_t rd_data_size; 283 ssize_t rd_data_size;
284}; 284};
285 285
286 286
@@ -1319,7 +1319,7 @@ vpn_allocation_cb (void *cls,
1319 vpn_ctx->vpn_request = NULL; 1319 vpn_ctx->vpn_request = NULL;
1320 rh->vpn_ctx = NULL; 1320 rh->vpn_ctx = NULL;
1321 GNUNET_assert (GNUNET_OK == 1321 GNUNET_assert (GNUNET_OK ==
1322 GNUNET_GNSRECORD_records_deserialize (vpn_ctx->rd_data_size, 1322 GNUNET_GNSRECORD_records_deserialize ((size_t) vpn_ctx->rd_data_size,
1323 vpn_ctx->rd_data, 1323 vpn_ctx->rd_data,
1324 vpn_ctx->rd_count, 1324 vpn_ctx->rd_count,
1325 rd)); 1325 rd));
@@ -1901,13 +1901,20 @@ handle_gns_resolution_result (void *cls,
1901 vpn_ctx->rh = rh; 1901 vpn_ctx->rh = rh;
1902 vpn_ctx->rd_data_size = GNUNET_GNSRECORD_records_get_size (rd_count, 1902 vpn_ctx->rd_data_size = GNUNET_GNSRECORD_records_get_size (rd_count,
1903 rd); 1903 rd);
1904 vpn_ctx->rd_data = GNUNET_malloc (vpn_ctx->rd_data_size); 1904 if (vpn_ctx->rd_data_size < 0)
1905 {
1906 GNUNET_break_op (0);
1907 GNUNET_free (vpn_ctx);
1908 fail_resolution (rh);
1909 return;
1910 }
1911 vpn_ctx->rd_data = GNUNET_malloc ((size_t) vpn_ctx->rd_data_size);
1905 vpn_ctx->rd_count = rd_count; 1912 vpn_ctx->rd_count = rd_count;
1906 GNUNET_assert (vpn_ctx->rd_data_size == 1913 GNUNET_assert (vpn_ctx->rd_data_size ==
1907 (size_t) GNUNET_GNSRECORD_records_serialize (rd_count, 1914 GNUNET_GNSRECORD_records_serialize (rd_count,
1908 rd, 1915 rd,
1909 vpn_ctx->rd_data_size, 1916 (size_t) vpn_ctx->rd_data_size,
1910 vpn_ctx->rd_data)); 1917 vpn_ctx->rd_data));
1911 vpn_ctx->vpn_request = GNUNET_VPN_redirect_to_peer (vpn_handle, 1918 vpn_ctx->vpn_request = GNUNET_VPN_redirect_to_peer (vpn_handle,
1912 af, 1919 af,
1913 ntohs (vpn->proto), 1920 ntohs (vpn->proto),