From b39e99e9a060f767b5057007588b7011d2be3731 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 7 Nov 2006 16:46:14 +0000 Subject: [PATCH] silc_parse_userfqdn zero output buffers. --- lib/silcutil/silcutil.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/silcutil/silcutil.c b/lib/silcutil/silcutil.c index aaa46cd1..40892e8a 100644 --- a/lib/silcutil/silcutil.c +++ b/lib/silcutil/silcutil.c @@ -116,14 +116,18 @@ int silc_parse_userfqdn(const char *string, { SilcUInt32 tlen; - if (!string || (!user && !fqdn)) + if (!user && !fqdn) + return 0; + + memset(user, 0, user_size); + memset(fqdn, 0, fqdn_size); + + if (!string) return 0; if (string[0] == '@') { - if (user) { - memset(user, 0, user_size); + if (user) silc_strncat(user, user_size, string, strlen(string)); - } return 1; } @@ -131,24 +135,18 @@ int silc_parse_userfqdn(const char *string, if (strchr(string, '@')) { tlen = strcspn(string, "@"); - if (user) { - memset(user, 0, user_size); + if (user) silc_strncat(user, user_size, string, tlen); - } - if (fqdn) { - memset(fqdn, 0, fqdn_size); + if (fqdn) silc_strncat(fqdn, fqdn_size, string + tlen + 1, strlen(string) - tlen - 1); - } return 2; } - if (user) { - memset(user, 0, user_size); + if (user) silc_strncat(user, user_size, string, strlen(string)); - } return 1; } -- 2.24.0