diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2022-03-01 18:12:18 +0100 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2022-03-01 18:12:18 +0100 |
commit | 7219603be3009d519b59aa60c15db003edfcca32 (patch) | |
tree | 066f9156622ae514428ba8781ce4852987fa340f /src/gnsrecord/gnsrecord_misc.c | |
parent | 8d9b1082615e4d26a3b7f85689d9b17aed5cd756 (diff) | |
download | gnunet-7219603be3009d519b59aa60c15db003edfcca32.tar.gz gnunet-7219603be3009d519b59aa60c15db003edfcca32.zip |
-coverity bugs
Diffstat (limited to 'src/gnsrecord/gnsrecord_misc.c')
-rw-r--r-- | src/gnsrecord/gnsrecord_misc.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/gnsrecord/gnsrecord_misc.c b/src/gnsrecord/gnsrecord_misc.c index 9da5bd920..3298168f4 100644 --- a/src/gnsrecord/gnsrecord_misc.c +++ b/src/gnsrecord/gnsrecord_misc.c | |||
@@ -264,16 +264,18 @@ GNUNET_GNSRECORD_identity_from_data (const char *data, | |||
264 | { | 264 | { |
265 | if (GNUNET_NO == GNUNET_GNSRECORD_is_zonekey_type (type)) | 265 | if (GNUNET_NO == GNUNET_GNSRECORD_is_zonekey_type (type)) |
266 | return GNUNET_SYSERR; | 266 | return GNUNET_SYSERR; |
267 | if (data_size > sizeof (struct GNUNET_IDENTITY_PublicKey)) | ||
268 | return GNUNET_SYSERR; | ||
269 | switch (type) | 267 | switch (type) |
270 | { | 268 | { |
271 | case GNUNET_GNSRECORD_TYPE_PKEY: | 269 | case GNUNET_GNSRECORD_TYPE_PKEY: |
272 | memcpy (&key->ecdsa_key, data, data_size); | 270 | if (data_size > sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)) |
273 | break; | 271 | return GNUNET_SYSERR; |
274 | case GNUNET_GNSRECORD_TYPE_EDKEY: | 272 | memcpy (&key->ecdsa_key, data, data_size); |
275 | memcpy (&key->eddsa_key, data, data_size); | 273 | break; |
276 | break; | 274 | case GNUNET_GNSRECORD_TYPE_EDKEY: |
275 | if (data_size > sizeof (struct GNUNET_CRYPTO_EddsaPublicKey)) | ||
276 | return GNUNET_SYSERR; | ||
277 | memcpy (&key->eddsa_key, data, data_size); | ||
278 | break; | ||
277 | default: | 279 | default: |
278 | return GNUNET_NO; | 280 | return GNUNET_NO; |
279 | } | 281 | } |
@@ -296,7 +298,7 @@ GNUNET_GNSRECORD_data_from_identity (const struct | |||
296 | if (0 == *data_size) | 298 | if (0 == *data_size) |
297 | return GNUNET_SYSERR; | 299 | return GNUNET_SYSERR; |
298 | tmp = GNUNET_malloc (*data_size); | 300 | tmp = GNUNET_malloc (*data_size); |
299 | memcpy (tmp, ((char*)key) + sizeof (key->type), *data_size); | 301 | memcpy (tmp, ((char*) key) + sizeof (key->type), *data_size); |
300 | *data = tmp; | 302 | *data = tmp; |
301 | return GNUNET_OK; | 303 | return GNUNET_OK; |
302 | } | 304 | } |