talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit ca19994f71ef73670c76d5b9f768c9ee92ea09ae
parent 5afa8c2859595e7a618337b1448d43e509253610
Author: Andrej Kacian <ticho@claws-mail.org>
Date:   Mon, 17 Dec 2018 22:22:01 +0100

Allow empty output parameters in get_serverportfp_from_filename()

Diffstat:
Msrc/common/utils.c | 24+++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/common/utils.c b/src/common/utils.c @@ -4652,17 +4652,27 @@ gboolean get_serverportfp_from_filename(const gchar *str, gchar **server, gchar return FALSE; } - *server = g_strndup(str, dotport_pos - str); + if (server != NULL) + *server = g_strndup(str, dotport_pos - str); if (dotfp_pos) { - *port = g_strndup(dotport_pos + 1, dotfp_pos - dotport_pos - 1); - *fp = g_strndup(dotfp_pos + 1, dotcert_pos - dotfp_pos - 1); + if (port != NULL) + *port = g_strndup(dotport_pos + 1, dotfp_pos - dotport_pos - 1); + if (fp != NULL) + *fp = g_strndup(dotfp_pos + 1, dotcert_pos - dotfp_pos - 1); } else { - *port = g_strndup(dotport_pos + 1, dotcert_pos - dotport_pos - 1); - *fp = NULL; + if (port != NULL) + *port = g_strndup(dotport_pos + 1, dotcert_pos - dotport_pos - 1); + if (fp != NULL) + *fp = NULL; } - debug_print("filename='%s' => server='%s' port='%s' fp='%s'\n", str, *server, *port, *fp); - if (!*server || !*port) + debug_print("filename='%s' => server='%s' port='%s' fp='%s'\n", + str, + (server ? *server : "(n/a)"), + (port ? *port : "(n/a)"), + (fp ? *fp : "(n/a)")); + + if (!(server && *server) || !(port && *port)) return FALSE; else return TRUE;