X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcid.c;h=e3a37d8e99d91c312b1a7ba316eda11933c0af4d;hp=9a35723a38832fc94ac599558dfe18edc07dc271;hb=386c883d8774999c6e74d7c6c37e52e4163a4cb1;hpb=73e02ea64eb9744bde0121ee487f8ce8eb803aa9 diff --git a/lib/silccore/silcid.c b/lib/silccore/silcid.c index 9a35723a..e3a37d8e 100644 --- a/lib/silccore/silcid.c +++ b/lib/silccore/silcid.c @@ -182,14 +182,10 @@ void *silc_id_payload_get_id(SilcIDPayload payload) unsigned char *silc_id_payload_get_data(SilcIDPayload payload) { - unsigned char *ret; - if (!payload) return NULL; - ret = silc_calloc(payload->len, sizeof(*ret)); - memcpy(ret, payload->id, payload->len); - return ret; + return silc_memdup(payload->id, payload->len); } /* Get length of ID */ @@ -336,26 +332,20 @@ void *silc_id_dup(const void *id, SilcIdType type) switch(type) { case SILC_ID_SERVER: { - SilcServerID *server_id = (SilcServerID *)id, *new; - new = silc_calloc(1, sizeof(*server_id)); - memcpy(new, server_id, sizeof(*server_id)); - return new; + SilcServerID *server_id = (SilcServerID *)id; + return silc_memdup(server_id, sizeof(*server_id)); } break; case SILC_ID_CLIENT: { - SilcClientID *client_id = (SilcClientID *)id, *new; - new = silc_calloc(1, sizeof(*client_id)); - memcpy(new, client_id, sizeof(*client_id)); - return new; + SilcClientID *client_id = (SilcClientID *)id; + return silc_memdup(client_id, sizeof(*client_id)); } break; case SILC_ID_CHANNEL: { - SilcChannelID *channel_id = (SilcChannelID *)id, *new; - new = silc_calloc(1, sizeof(*channel_id)); - memcpy(new, channel_id, sizeof(*channel_id)); - return new; + SilcChannelID *channel_id = (SilcChannelID *)id; + return silc_memdup(channel_id, sizeof(*channel_id)); } break; }